HoneyMoose
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • USRealEstate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
BLOG.OSSEZ.COM
A responsive blog theme focused om user reading experience
Computer Science

Edge 提供了标签分组功能

在 Edge 中,可以通过拖动标签来对标签进行分组。 这个功能在有很多标签的时候还是比较实用,最好还是不要在浏览器中保留过多标签。     首先,打开新版Edge浏览器,在地址栏处输入“edge://flags”并访问 接着,在“实验”页面中,在搜索栏输入并搜索“Tab Groups”,并将下方三项都设置为“Enabled”,最后点击“重启”按钮即可 这样就开启了“标签页分组”功能啦 对用不上的标签还是及时关闭吧,因为过多标签比较消耗资源。   https://www.ossez.com/t/edge/14051

2022年08月08日 0Comments 20Browse 0Like Read more
Computer Science

Discourse 的关闭主题(Close Topic )和重新开放主题

Discourse 提供了一个关闭主题的功能。 简单的来说就是如果一个主题长期不用或者时间过长了,DIscourse 可以进行关闭。 关闭这个主题可以是自动的,也可以是手动的。     这个关闭主题主要是对级别不高的用户有影响,当用户级别不高,主题被关闭后,用户就没有办法进行回复了。 对高级别用户,这个功能不会做出限制,哪怕是主题关闭了,这些用户也还是可以回复的。 表现 当主题被关闭后,主题的标题签名将会显示一个带有锁的图标。     如果看到这个图标,则表明主题已经被关闭。 重新开放主题 进入主题,通过右侧的配置选项。 对关闭的主题,可以进行重新操作让主题重新开放。     可以对上面的操作来实现主题的关闭和开放。 https://www.ossez.com/t/discourse-close-topic/14050

2022年08月08日 0Comments 18Browse 0Like Read more
Computer Science

Java 多行字符串

在本文中,我们来说说 Java 的多行字符串(multiline strings )。 从 JDK 15 开始,Java 提供了一个称为 Text Blocks 的语法,你可以在代码中直接使用这个功能,如果你安装这个版本的 JDK 的话,那么需要使用一些特定方法实现这个目标。 在本文中,我们还讨论使用其他方法的实现。 文本块 我们可以使用文本块来在代码中定义,文本块使用的是 3 个双引号 “”" (three double quote 3 个双引号): public String textBlocks() { return """ Get busy living or get busy dying. --Stephen King"""; } 这种定义方式在当前 Java 中最方便的实现了,但是因为 JDK 版本的限制,很多项目可能根本没有办法使用这种定义方式。 如果你还没有使用 Java 15,但是使用了 Java 13 和 14 版本的话,我们可以启用预览功能来进行支持。 在后面的文章中,我们将探讨下可能有的其他实现方式来实现文本块的功能。 获得行分隔符 每个操作系统使用自己的方式来确定是否开始一个新行。 在 Java 中,能够非常容易的获得针对运行的操作系统使用的是什么行分隔符,使用下面的代码就可以获得行分隔符了。 String newLine = System.getProperty("line.separator"); 如果你的 JDK 版本是在 7 以上的版本的话,你可以直接使用系统提供的: System.out.println(System.lineSeparator()); 方法。 我们将会使用 newLine 变量在后续的代码中插入一个新行。 String 字符串拼接 String concat 方法能够让我们非常容易的对字符串进行拼接,请考察下面的代码: public String stringConcatenation() { return "Get busy living" .concat(newLine) .concat("or") .concat(newLine) .concat("get busy dying.") .concat(newLine) .concat("--Stephen King"); } 使用 + 操作符,是能够实现上面字符串拼接的另外一种方法。 Java 编译器将会把 concat() 和 + 操作符编译成相同的代码: public String stringConcatenation() { return "Get busy living" + newLine + "or" + newLine + "get busy dying." + newLine + "--Stephen King"; } 字符串 String Join Java 8 使用了一个叫做 String#join 新方法,这个方法将会使用一系列的字符串作为参数。 这个方法将会返回使用分隔符分隔的所有以字符串为参数的字符串。 public String stringJoin() { return String.join(newLine, "Get busy living", "or", "get busy dying.", "--Stephen King"); } String Builder StringBuilder 通常被用来帮助构建字符串,相同的还有一个 StringBuffer,这 2 者的区别主要在于是否是线程安全的问题。请参考:Java 的 StringBuffer 和 StringBuilder 的不同 文章中的内容。 最简单的解释就是 StringBuilder 是线程不安全的。 在基本 Java 实践中,如果我们需要在程序中构建字符串,通常都会使用 StringBuilder 或者 StringBuffer,而尽量避免使用 Java String 的 + 操作符: public String stringBuilder() { return new StringBuilder() .append("Get busy living") .append(newLine) .append("or") .append(newLine) .append("get busy dying.") .append(newLine) .append("--Stephen King") .toString(); } String Writer StringWriter 是另外一种可以用来创建多行字符串的方法。 在这个方法中,我们不需要使用 newLine ,因为我们使用了 PrintWriter 对象,这个对象将会自动添加一个方法 println(); (如果你查看下 JDK 的源代码的话就了解了。) public String stringWriter() { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printWriter.println("Get busy living"); printWriter.println("or"); printWriter.println("get busy dying."); printWriter.println("--Stephen King"); return stringWriter.toString(); } Guava Joiner 使用外部库,通常对字符串拼接这个问题来说意义不大。 如果你的项目已经使用了外部库的话,你也是可以直接拿来用的。 例如,大部分项目中都会使用的 Guava。我们可以使用 Guava 中的 Joiner 类。 public String guavaJoiner() { return Joiner.on(newLine).join(ImmutableList.of("Get busy living", "or", "get busy dying.", "--Stephen King")); } 从文件中载入 Java 读取文件和从文件中的输出是相同的。 换句话说,Java 从文件中读到什么就会显示什么,因为对于比较长的文本,可以使用属性文件或者文件的方式来把这些数据从程序中分离出来。 读取文件的方式有非常多种,我们通常会使用第三方的库来读取,因为 Java 读取文件的时候比较容易出现异常,同时读取文件有时候还需要处理文件读取的流。 例如下面的代码,我们使用的是原生的文件读取方式: public…

2022年08月08日 0Comments 16Browse 0Like Read more
Computer Science

Java “constant string too long” 编译错误

这个问题是编译时错误,在 Java 的运行时没有这个限制。 当我们在 Java 编译器中输入的变量值超过 64 KB 的话,Java 编译器是不会让编译通过的,你将会得到一个 constant string too long” error from the compiler 错误。 在本文中,我们将会对这个问题的原因进行解释和如何解决这个问题。 问题描述 首先让我们在本地的计算机中重复这个问题,在下面的代码中,插入一个超长的字符串。 @Test public void whenDeclaringTooLongString_thenCompilationError() { String stringTooLong = "stringstringstring ... 100,000 characters ... string"; assertThat(stringTooLong).isNotEmpty(); }     上面输入的字符串超过了 100,000 个字符。因为我们是为了测试使用的,你可以在代码中输入任何很长的字符。 有时候你的 IDE 可能不会提示这个错误,但是我们测试的 IEDA 是没有问题的,这个错误能够完全提示出来。 当然可以使用 maven 来进行编译,相同的代码,如果使用 Maven 进行编译的提示如下: [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:06 min [INFO] Finished at: 2022-08-06T09:34:08-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:testCompile (default-testCompile) on project core-java-strings: Compilation failure [ERROR] /D:/WorkDir/Repository/GitHub/cwiki-us-docs/java-tutorials/core-java-modules/core-java-strings/src/test/java/com/ossez/stringtoolong/StringTooLongUnitTest.java:[16,32] constant string too long [ERROR] [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <args> -rf :core-java-strings 在使用 UTF-8 编码的时候,类文件的字符被限制在 2^16 bytes。 问题解决 因为这个问题是编译时错误,不是运行时问题。 解决这个问题的办法也就非常简单了,如果你需要处理超长的字符串的话,我们可以使用 FileInputStream 的方法来进行处理。 将需要处理的字符串放到文件中就可以了。 然后让你的程序从文件中把数据读出来。 如下面的代码所示: @Test public void whenStoringInFileTooLongString_thenNoCompilationError() throws IOException { FileInputStream fis = new FileInputStream("src/test/resources/stringtoolong.txt"); String stringTooLong = IOUtils.toString(fis, "UTF-8"); assertThat(stringTooLong).isNotEmpty(); } 当然你也可以定义成一个属性文件中的值,这样的话,你可以通过读取属性文件方法把这个值取出来。 这种方法和上面一种方法的本质是一样的,就是用文件来替换掉。 @Test public void whenStoringInPropertiesString_thenNoCompilationError() throws IOException { try (InputStream input = new FileInputStream("src/main/resources/config.properties")) { Properties prop = new Properties(); prop.load(input); String sValue = prop.getProperty("stringtoolong"); assertThat(sValue).isNotEmpty(); } } 然后尝试对上面的代码再次进行重新编译,有关这个字符串过长的错误就解决了。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.433 s [INFO] Finished at: 2020-03-14T18:23:54+01:00 [INFO] ------------------------------------------------------------------------ 当然,你也可以使用字符串拼接的方式,将希望处理的字符串进行拼接。 但并不十分推荐使用这种方法来进行处理。 结论 在本文中,我们对 constant string too long 编译错误进行了说明,并且提供了解决的方法。 简单来说就是使用文件来进行替换。 测试源代码 相关的测试源代码,请访问: https://src.ossez.com/cwiki-us-docs/java-tutorials/src/branch/main/core-java-modules/core-java-strings/src/test/java/com/ossez/stringtoolong/StringTooLongUnitTest.java 您也可以 Fork 代码后提交更新。   https://www.ossez.com/t/java-constant-string-too-long/14048

2022年08月06日 0Comments 28Browse 0Like Read more
Computer Science

Discourse 清理存储空间的方法

Discourse 使用一段时间以后会发现硬盘空间占用非常多。 主要是因为 Docker Image 的问题,如果升级次数越多,空间占用越多。 运行下面的命令: ./launcher cleanup 能够帮助你清理 Discourse 占用的空间。 如下面代码所示: [[email protected] discourse]# ./launcher cleanup WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: 56cf2b82033af7813aaf7ee02eb8793aa15f8d3a025df8af2e4df75cc8f4dc96 Total reclaimed space: 0B WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y Deleted Images: deleted: sha256:506f9cdf603a473f3ba35a8ba01ca70024849dd5c3797da49e0d3c7c802a4f0b deleted: sha256:f1d2b9d8a3e0db1e7bb0a67743a614c4d1b3a7e067c53a4434fd72ed7d67df52 untagged: discourse/base:2.0.20210415-1332 untagged: discourse/[email protected]:b3b1eb6d859d683f26ad2a02e0efabcd502a63ab07b8211e4c425aa7ba7dd3a4 deleted: sha256:30e4746e631e7577e7ebd083e48947c755842801a00bc257e47759fecd499712 deleted: sha256:c1895ca2a8f6e6463a576d86b0038b82e86919c8899ebad7e15021d45e7f7199 deleted: sha256:7e718b9c0c8c2e6420fe9c4d1d551088e314fe923dce4b2caf75891d82fb227d deleted: sha256:50db4216c5d5c853293af9fab8d467c74b1e71d82e70a03c8dd1984dc3ef0431 deleted: sha256:b62f20d4a8836c1d9abcf081c16c834587ec15680a8bd34017a0621510aea57b untagged: discourse/base:2.0.20201221-2020 untagged: discourse/[email protected]:e181dd9046cc293b10c5b29bbc21c5aa8b939ba5f0c500da4a9e952ed0b5195d deleted: sha256:6b45f8ee2ab2e90b0a8ea371d51f5f0dc080b7955f9812b47a79c261aaa29823 deleted: sha256:05c8e0789bfe3e0486776c00befc48d0f0e5569c0361f181877f9611c6f1f635 deleted: sha256:3311925cea5165456fa79172f8186c58d80c2424bcd2c899a899a66ba51de9b4 deleted: sha256:a0676b0d76ab4dbef950969be61a733e5d8282b2ad2685105aa179f0707a74d8 deleted: sha256:8ecb2a5f79248ebea87567efabd251562fee6d09858fdd391a116eb42d641feb deleted: sha256:51f0314e2e6ae5c1ca3e4075bdd919980135340f24a40f1a574cdd5eadc57b09 deleted: sha256:aab4715f96bfbcb2f97387ef16730db52252ac3a01a1d37c2f9f2da031316b97 deleted: sha256:c98b940b38e61975ea39e2e8159796b6d21baf4bb7f5d0418edce2aca657bff5 untagged: hello-world:latest untagged: [email protected]:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b deleted: sha256:9c27e219663c25e0f28493790cc0b88bc973ba3b1686355f221c38a36978ac63 untagged: discourse/base:2.0.20220720-0049 untagged: discourse/[email protected]:7ff397003c78b64c9131726756014710e2e67568fbc88daad846d2b368a02364 deleted: sha256:7be781c858e622c5fb31b9dc6a5d3e492c065b904ffc16ce477fcc53ca65b9fa deleted: sha256:5b5900cb8266bbdd3e06b78abc67a0dcec04af1381ff630faa56b5c0149692c9 deleted: sha256:09dd498b1f776d6661e4b47b24e70d3bbc7db406345d65ced288f6b245927a9c deleted: sha256:5ac0c84a3441c11fb2c39479fef77749eee9f96ba12bc9da9c049c14788775a3 deleted: sha256:c8c660d577fda3361260d76be6e0fabf3da4588e3d999cc99753203af01f6e80 deleted: sha256:3e45b3847b22d5a008e7a4e01a1c7bd39d75225589e18c2ab545ba809a613601 untagged: discourse/base:2.0.20211118-0105 untagged: discourse/[email protected]:74b41fffd4f05433eb7c9b72954b1f5f8b15cd0e802bb724c96b7d699c3f6fa1 deleted: sha256:b6cc7cf8974a6ef7bb64c36f4592af261cda0d5565bd91da603568ce26968048 deleted: sha256:c1455b2fdbca024c36c4e75746051b77c3637020cfa1e36a41440292a8c39424 deleted: sha256:77b323d4ec74aad770337f99a60e862a64ccc53f4775b5f4945df0e606f78b90 untagged: discourse/base:2.0.20210528-1735 untagged: discourse/[email protected]:b1890ab83b905ada5c9b7221264d62159bbf63bda706cdc652b0533bc90431c5 deleted: sha256:4ce0d1e5d32feaa17da3d402ab2f5fe038137662ce77d165e0567d76db40c095 deleted: sha256:5c06ea48f14b9a051dbcccf1a0412e85df72ab9e21af9c1962e3cdea0b1b2a77 deleted: sha256:a0514302287107820c8e83f8f895c7f6a7ba563a577ebac462574b0d9b43c5ee deleted: sha256:e3a31c05b5e75d8d70d5de0b54eaabeee2038934666c03a0345ad41a2cd9bb55 deleted: sha256:482386bf57afd5847d36e8ee4324f76d63e7cdf5234e7be3b760b78f64db7a71 deleted: sha256:c497ee682f8262de408c6f12917672455e38c8f710704a7b090e2fd51756eba6 deleted: sha256:02c055ef67f5904019f43a41ea5f099996d8e7633749b6e606c400526b2c4b33 untagged: discourse/base:2.0.20220128-1817 untagged: discourse/[email protected]:dcb4eb8e41a2e84f776f80587f308d167a54ad7ff4ba616199891828bbd4ddae deleted: sha256:bcd525e1be918b0c4e9bf19495943eb8b7cb548d073b9f3ad23c714d814c1808 deleted: sha256:0586eaea867ec10dddd5fca8f81e17cba7f952270c5ff596230ec12033b3c6d1 deleted: sha256:c35314905abc8c9c72a22fb56b1cabf20df44788f7438da5c8d9b56d037e32c3 deleted: sha256:7d0ebbe3f5d26c1b5ec4d5dbb6fe3205d7061f9735080b0162d550530328abd6 deleted: sha256:73460cdc27d4133c601563777240899fb33ecc7f7477b16f5031553de368208f deleted: sha256:e34987cfb7c91bff520e060d9e4f791e76295a4b6839dc1684cf87f0aea79c2a deleted: sha256:c0704d4ce2b4b1b395895db07af5dd040bac1099c6e7dc6c634e144d55215458 deleted: sha256:9b70fca9c051383c6b74a2a21804cbb967e3fd49c8f88f9ff12109e95af27fb3 deleted: sha256:87c8a1d8f54f3aa4e05569e8919397b65056aa71cdf48b7f061432c98475eee9 untagged: discourse/base:2.0.20220413-0411 untagged: discourse/[email protected]:bd13d6869319791c8379143cc8a1c4cfc71d5406dd7e606dffdd40da04d4ed1b deleted: sha256:ab71a5d974602eaf772a3e07b44ae981b85a36927d231f06e539e631d3db3e92 deleted: sha256:bb449b86e88550855d381f04c9341c1ab39498127043d18c9a66fbdc3b85982e deleted: sha256:51855ced24070ab6ec11f2675db73131b3b3a469a0f63cd5eb7742189b838b38 deleted: sha256:608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce Total reclaimed space: 20.57GB 帮助你清理了超过 20 G。     这个命令可以没事运行下。   https://www.ossez.com/t/discourse/14047

2022年08月04日 0Comments 32Browse 0Like Read more
Computer Science

Java 是否应该使用通配符导入( wildcard imports)

这个问题应该是所有使用过 Java 第一课的人都会告诉你不要使用通配符导入。     主要问题 主要的问题是它使你的本地命名空间变得混乱。 用最简单的说法就是 Date 这个对象,你可能在 java.sql.Date 和 java.util.Date 都会有这个对象。 如果你使用通配符导入的话,就完全不知道用哪个对象了。 通配符导入真的有那么讨厌吗 从代码执行效率来说,使用通配符导入没有任何区别。 例如: java.io.* 和 java.io.File 都会编译成相同的二进制代码。 所以在运行时,是否使用通配符导入完全没有区别。 IDEA 默认使用通配符导入的类的数量是 5 。在 IDEA 中,如果你在同一个包中导入的类超过 5 个的时候,将会默认使用通配符导入。 具体情况具体分析 这个我们认为和公司的编码规范有关,如果公司默认的编码规范就是不允许有通配符导入。 那你就别通配符导入吧,那么你忍受下在代码前面有几十行的代码导入,通常 IDE 有代码折叠功能,这也能忍受。 如果你是通过 GitHub 的代码查看的话,那么恭喜你,第一页基本上看不到什么东西。 我们认为,不需要认为通配符导入是下山猛虎,如果有代码导入冲突的话,在编译阶段就能发现了,没有必要拿着教科书的所谓经验不放。 如果觉得 IDEA 的默认 5 的配置太小了,建议就调整到 12 或者更高。 相信所谓使用通配符导入的情况绝大部分情况下不会造成什么困扰,同时还能增加代码的简洁度。 如果你有什么看法也可以一起讨论讨论喔。   https://www.ossez.com/t/java-wildcard-imports/14046

2022年08月03日 0Comments 33Browse 0Like Read more
Computer Science

IDEA 自动导入的配置(Auto import)

很多开发过 Java 的小朋友都有一个定义就是不导入 * 但 IDEA 自动导入的配置中的默认选项是通配符导入( wildcard imports)。 在默认情况下,如果同一个包中的类导入超过 5 个,IDEA 默认配置将会使用通配符 * 导入。 这个默认配置是可以修改的。     如上图的配置界面,默认为 5 。 如果是静态导入的话,那么默认就是 3 。 至于是否配置这个功能,因人而异或者根据公司的代码规范决定。通常导入的包都有代码折叠功能,导入几百个,在代码的最前端都会被折叠掉。 https://www.ossez.com/t/idea-auto-import/14045  

2022年08月03日 0Comments 29Browse 0Like Read more
U.S. Travel

民族融合的湘南典范芬香村 - 历史沿革

芬香行政村共有芬香、芭蕉口、潮水江、排头等16个村民小组,境内耕地面积1780亩,山林面积近6万亩,总人口440户1610人,村委会驻在芬香自然村。芬香村是零陵区最为偏远的山村之一,也是零陵区的41个省级贫困村之一,通过精准帮扶,2017年实现整村脱贫。     我们到访的主要是芬香自然村。芬香村之名原有几种称呼,一是叫“分香”,也就是“分香火”的意思。 传说大庆坪乡文里村一位唐姓汉子贩盐经过这里,见此地山水秀美,古树参天,泉水丰富,回去后就跟文里村的族人商议,分几户人家到这里来建新村。经过几代人的发展,村子里的人口增多,村子也兴旺起来了,但却没有具体的村名,大家商议,遂取名“分香”,意思是纪念从文里村唐氏家族分香火而来,其根还是在文里村,与文里村的唐氏家族同根同源。 但村里唐姓居民说,他们持有的《唐氏族谱》载,说村子唐氏人家是于明洪武年间搬来,距今有600年历史了。 明清时期,文里村一个唐姓大地主在大山岭上有大片山林和田土,就雇佣了一些人在这里看管山林田土。 多年后,佣人们就在这里繁衍生息,就形成了一个自然村。大家生活得很幸福,也很安稳和谐。后来有一年发生了瘟疫,大量的人病死,最后一户人家,向地主求助,地主就请来风水师重新察看这里的风水。 发现村子后面有一座坟正对村口,煞气很大,于是决定将村子向南移,避开古坟煞气。地主有三个儿子,也决定分一路香火到这里来住。分过来的这个儿子又生了三个儿子,也就成了村里人现在的祖先。 再后来家族中出现了一个做官的后人,回到家乡,发现这里花开遍地,芳香四溢,人丁兴旺,于是就在“分”字上加了草头,变成了“芬”。芬香村的前面有一座唐姓先祖的古墓,据说是清代的,但具体是什么时间没去考证。 询问古墓边的一户唐姓村民,说这是村里唐姓人家的始祖,不知有多少代了。村内也没有什么明代的建筑,可以推知,芬香村的建村历史应属清代中期前后。 另一种说法是,芬香村也叫“喷香”村,因村内生长着许多香樟树、香桂树、香柏树,而村子四周的山上有各种各样的山花轮次开放,一年四季香气盛村,因而叫“喷香”。除此还有叫“花香”、“闻香”、“清香”、“华香”的,不管是哪种说法,村名却实实在在地反映了村子的山水花香与优美环境。 也有人说,是清代一位叫陈彩龙的文人到此村做客,建议把村名“分香”改成了“芬香”。 芬香自然村里有盘、唐、张、邓四姓,三个村民小组,共20户人家。 在解放前芬香村里也是四姓,即唐、盘、贺、张四姓。听说贺姓人家当兵去了台湾,后来,从外面来了一户邓姓人家。 在村里,拜访了82岁的盘忠武老先生。盘老说,最早居住在这个村里的是瑶族盘姓。在进村的路边地里原有一座盘古庙,庙里有一块碑。但我们没有找到石碑,其庙址也没有找着。 村里的盘姓人家后来搬到广西瑶族村寨去了。 盘老说:他家是四代前从广西东山搬迁过来。开始以租种田地为生,土地改革时落户到村,分到了自己的田地,盘老1961年零陵师范毕业,分配在教育局工作,后到湾夫中学,1968年调到大庆坪中心完小,目前整个古村里只住着盘老一户瑶族人家。 从这可知,芬香村一直都是瑶汉民族杂居在一地,村民可以自由迁徙,民族融合,共同发展。     https://www.usreio.com/t/topic/269

2022年08月03日 0Comments 31Browse 0Like Read more
U.S. Travel

民族融合的湘南典范芬香村 - 地理环境

村委会建在村后的山冈坡地上,两座人造假山与一面山水风景的画墙,向人们展示芬香的优美景致。穿过村委会,来到村子的高处,放眼四周,这是一个被群山环抱的村落,坐落在都庞岭余脉怀抱中。 芬香村的地理坐标为北纬25°52′52″,东经111°16′8″,海拔448米。村落朝向为坐北向南,前临田园,后依山势而建。一条石板铺设的古道从村边经过。整个村落掩映在青山绿树丛中。     村落东面是两座山岭,叫狮子岭、凤凰岭,翻过这两座山岭,再向东直达永州古城。村子的北面紧邻大庆坪乡文里村和枫木山村,到大庆坪乡政府6.5公里。 在没有通村级公路前,村民外出到零陵城主要走小路,并跨过一条小溪。在小溪上有一座石板桥,用两块大青石板平架在石墩上,石墩呈船形,前尖后方,很好地减少了洪水对石桥的冲击。 芬香村的南面是连绵不绝的都庞岭,向南沿着山间小路走3公里,就是与广西壮族自治区的交界地。 村子的东南面与广西壮族自治区全州县东山瑶族自治乡豹子岭村相邻,村子西南的拉马岭与广西壮族自治区全州县白宝乡接壤,湖南广西两省由黄花岭所连。芬香村是永州与广西交界边线上的一个传统村落。     芬香村坐落在一个小山谷盆地的边缘,东边的一些院落紧靠在山脚边,西边的主要院落则是沿着山坡向后山递层建设。 我们爬上一户盘姓村民的二楼上,西南的群山尽收眼底,给人有种一览众山小的感觉。连绵起伏的山峦绿影重重,偶有山谷间升起一缕白烟,不知是炊烟还是白雾萦绕在山间。 远眺山峰上的蓝天白云,绿屏静静地立在那儿,时空静止了,心儿也跟着被静化了。近处山峦上有几抹红黄色杂入其间,显得特别的绚丽。 村前的水田水波碧亮,几声鸭鸣,几只老鸭水中觅食,激起了田里的水起了些许波痕。村后有十几棵高大的百年以上老树,有的三人都围不过来,有的树上挂满了只有在寺庙里才可以见到的用于祈福的红布条,这里似世外桃源,清新静谧。   https://www.usreio.com/t/topic/268

2022年08月03日 0Comments 35Browse 0Like Read more
U.S. Travel

民族融合的湘南典范芬香村 - 概述

从零陵古城出发,行车一个多小时,到达大庆坪镇,再从大庆坪镇向南转,沿山路而行,是一条长约6公里的乡村公路。放眼望去,远处山峦起伏,墨绿尽染层林。 天空上的白云在山尖上停滞凝固,似乎在佑护这片墨绿,又似在寻找另一种色彩。一阵风吹来了,山顶上的白云慢慢地向远处飘移,是那样的慵懒,是那样的悠闲。 公路两旁竹木葱葱郁郁,偶尔有小藤条伸到路边来,像似对来往的游人伸出热情的手,高大的树木遮住炎炎烈日,把一条公路掩在绿色中。 山间的层层梯田里,不是乡亲们收割稻谷后的草堆,就是已种下的油菜苗,仿若在昭告游人今年又是一个丰收年。转过一个山弯,右边是山坡,车子只得紧贴山崖前行;左边是陡峭的山谷,山谷被绿树藤蔓所遮掩,只有从谷底传来的空远流水声,才会知道公路下方是万丈深渊。 再转过一道弯,就是一个较为宽阔的山谷,一条小溪沿山谷曲折而行,在溪水边是依次向上的梯形山地,乡村公路就在山地中向前延伸,沿着这条公路继续向前行驶,在一处山坡的平顶上有一座新建的楼房,这是芬香村村委会。沿村委会门前的水泥路继续前行,约数里,上一山坡,发现前方有一座仿古建筑,这就是芬香村的游客接待中心。 该村于2016年被国家住房建部评为第四批“中国传统村落”。   https://www.usreio.com/t/topic/267

2022年08月03日 0Comments 29Browse 0Like Read more
12345…201
Newest Hotspots Random
Newest Hotspots Random
Java 中使用 public,private 和 protected 修饰的方法 IntelliJ IDEA 打开近期工作的项目的对话框的快捷键 民族融合的湘南典范芬香村 - 振兴绿色乡村 Java System.lineSeparator 方法 民族融合的湘南典范芬香村 - 故事与民谣 民族融合的湘南典范芬香村 - 民俗风情之崇文重教
JAVA程序员写的接口没有PHP程序员体验好Java 虚拟机的概念是怎么来的Protocol buffers 的问题和滥用Discourse 自定义头部链接(Custom Header Links)GRPC MacOS M1 处理器的问题靠山面水的诗意适居 —— 传统村落水口山镇大皮口村
[LintCode] Reverse Array(翻转数组) Confluence 6 针对站点维护使用只读模式 Druid 加载 Kafka 流数据 KafkaSupervisorIOConfig 配置信息表 Druid 加载 Kafka 数据时直接提交一个 supervisor Tax Day, Southwest Airlines, Starbucks: Your Tuesday Evening Briefing GitLab 如何更新许可证
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • H1B
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • USRealEstate
  • 我的小厨

COPYRIGHT © 2020 HoneyMoose. ALL RIGHTS RESERVED.

THEME CWIKIUS.CN MADE BY VTROIS