您的位置 首页 > 德语词汇

properties是什么意思,properties的意思翻译、用法、同义 properties文件的加载优先级是最低的

老铁们,大家好,相信还有很多朋友对于properties是什么意思,properties的意思翻译、用法、同义和properties文件的加载优先级是最低的的相关问题不太懂,没关系,今天就由我来为大家分享分享properties是什么意思,properties的意思翻译、用法、同义以及properties文件的加载优先级是最低的的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

上次分享了如何一步一步搭建一个springboot的项目,详细参见《创建一个springboot服务就是这么简单》,最终的结果是在”8080“端口搭建起了服务,并成功访问。不知道有小伙伴是否有疑惑,springboot应该有配置文件的,一般的配置文件都是application.properties或者application.yml,的确是这样的。但是我确实没有这些配置文件,服务正常在”8080“端口启动,这是因为在springboot内部有一套默认的机制。今天不聊这些默认的机制,聊一聊application.properties/application.yml文件。

前面说到没有配置application.properties文件,现在我在main/resources文件夹下新建一个application.properties文件,并且写上如下的配置

properties是什么意思,properties的意思翻译、用法、同义 properties文件的加载优先级是最低的

classpath下的applicaiton.properties

好了,通过上面的启动结果截图,看到服务在端口”9090“启动了。那么如果在该目录下在配置一个application.yml文件呐,

classpath下的application.yml文件

可以看到依然是在端口”9090“启动服务。为此得出这样个结论:在相同文件夹下如果有application.properties和application.yml两个文件,那么application.properties文件会覆盖application.yml文件,生效的是application.properties文件

什么是yml文件

yml是由YAML(YAMLAintMarkupLanguage)编写的文件格式,是一种很直观的数据序列化方式。很简单就是一种新的文件格式,和XML、prperties文件类似。

看到这个标题的小伙伴肯定会说,难道application.properties可以在其他路径,没错,猜对了。application.properties/.yml我们是放在了main/resources文件夹下,在项目运行的时候该文件夹下的文件会被拷贝到classes文件夹下,所以该路径又叫做classpath

在springboot的源码中搜索”application.properties“,搜到ConfigFileApplicationListener这样一个类,在该类的注释上有下面这段话,

*{@linkEnvironmentPostProcessor}thatconfiguresthecontextenvironmentbyloading\n*propertiesfromwellknownfilelocations.Bydefaultpropertieswillbeloadedfrom\n*'application.properties'and/or'application.yml'filesinthefollowinglocations:\n*<ul>\n*<li>file:./config/</li>\n*<li>file:./config/{@literal*}/</li>\n*<li>file:./</li>\n*<li>classpath:config/</li>\n*<li>classpath:</li>\n*</ul>

大体意思是”EnvironmentPostProcessor通过从众所周知的文件路径加载properties来配置上下文环境。默认的properties来自application.properties/application.yml文件,这些文件来自以下路径“,

file:./config/根文件夹(项目文件夹)下的config目录

file:./config/{@literal*}/根文件文件夹(项目文件夹)下的config/*/目录

file:./根文件文件夹(项目文件夹)下

classpath:config/classpath下的config/

classpath:classpath下

好了,我们已经知道了application.properties/application.yml文件会从以上的几个位置加载,且我们配置的main/resources其实就是上面的classpath:,那么上面的这些路径是不是也有先后顺序呐,顺着ConfigFileApplicationListener这个类继续往下看,看到了下面的这样一个属性,

//Notetheorderisfromleasttomostspecific(lastonewins)\nprivatestaticfinalStringDEFAULT_SEARCH_LOCATIONS="classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";

可以看到这个DEFAULT_SEARCH_LOCATIONS指定的就是上面的几个值,且上面的注释很有意思,但是我没翻译好,通过例子来验证吧。已经知道了application.properties和application.yml的优先级,我们就用application.properties文件来验证就好了,在resources/config(运行路径:classpath:/config/)下有application.properties,

classpath:/config/下的application.properites

使用的是9092,也就说resouces/config的优先级大于resources,即,classpath:/config/>classpath:/。下面再看下file:/

项目根路径下的application.properties

在项目的根路径下新建了application.properties文件,起server.port为9093,下面看服务使用的哪个端口,

服务使用的是9093,优先级为:file:/>classpath:/config/>classpath:/。现在我在项目的路径下增加config/my/路径,且增加application.properties文件,

项目根路径/config/my/下的application.properties

服务在端口”9094“启动,说明优先级为:file:./config/*/>file:./>classpath:/>classpath:/config/,最后一个验证的点为file:/config,这个我想无须验证了肯定优先级是最高的,为此优先级顺序由高到低为:file:./config/>file:./config/*/>file:./>classpath:/>classpath:/config/,通俗点说就是:项目根路径下的config>项目根路径下的config/*/>项目根路径>classpath:/config>classpath:/

最后我要翻译下面的这个注释了,

//Notetheorderisfromleasttomostspecific(lastonewins)\n\tprivatestaticfinalStringDEFAULT_SEARCH_LOCATIONS="classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";

大体意思是“注意,顺序是从左到右,最后一个胜出”。大家凑合看,记住这个具体顺序即可。

本文主要分析了springboot的默认配置文件application.properties和application.yml的优先级,以及springboot默认的加载路径及每个路径的优先级;

1、同级下,application.properties文件优先级大于application.yml,前者会覆盖后者;

2、springboot的默认加载路径有5个,分别是classpath:/、classpath:/config/、项目根路径、项目根路径/config/*/、项目根路径/config/,会从这5个路径下加载application.properties或application.yml;

3、5个默认的加载路径的优先级为:项目根路径下的config>项目根路径下的config/*/>项目根路径>classpath:/config>classpath:/,前者会覆盖后者

现在我们知道了,平时在项目中resources下的application.properties文件,其实是优先级最低的。

不知道小伙伴是否有这样的疑惑,我们只能使用默认的配置文件吗?只能使用默认的加载路径吗?当然springboot不会这样做,后面继续揭晓,敬请期待。

《创建一个springboot服务就是这么简单》

5分钟掌握注解@Async,异步处理不再难——springboot

好了,文章到这里就结束啦,如果本次分享的properties是什么意思,properties的意思翻译、用法、同义和properties文件的加载优先级是最低的问题对您有所帮助,还望关注下本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023