当前位置:网站首页 > 编程语言 > 正文

yml文件在哪(yml文件在哪里)



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

springboot默认的加载路径有哪几种

然后,启动项目,

springboot默认的加载路径有哪几种

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

springboot默认的加载路径有哪几种

启动结果如下,

springboot默认的加载路径有哪几种

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

什么是yml文件

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

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

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

     * 
  • file:https://www.php.cn/faq/config/
  •  * 
  • file:https://www.php.cn/faq/config/{@literal *}/
  •  * 
  • file:https://www.php.cn/faq/
  •  * 
  • classpath:config/
  •  * 
  • classpath:
  •  * 

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

file:https://www.php.cn/faq/config/ 根文件夹(项目文件夹)下的config目录

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

file:https://www.php.cn/faq/ 根文件文件夹(项目文件夹)下

classpath:config/ classpath下的config/

classpath: classpath下

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

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

springboot默认的加载路径有哪几种

看下现在使用的是哪个端口,

springboot默认的加载路径有哪几种

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

springboot默认的加载路径有哪几种

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

springboot默认的加载路径有哪几种

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

springboot默认的加载路径有哪几种

测试结果如下,

springboot默认的加载路径有哪几种

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

以上就是springboot默认的加载路径有哪几种的详细内容,更多请关注php中文网其它相关文章!

到此这篇yml文件在哪(yml文件在哪里)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 共享打印机0x0000709补丁(0x00000709共享打印机)2025-05-23 23:45:04
  • 来自远方作品推荐(来自远方推文)2025-05-23 23:45:04
  • 104协议报文解析(104soe报文)2025-05-23 23:45:04
  • tpami投稿要求(tpami审稿)2025-05-23 23:45:04
  • pdfView为什么打印不了(pdf为什么没办法打印)2025-05-23 23:45:04
  • 自动驾驶标注员有前途吗(自动驾驶标注员有前途吗知乎)2025-05-23 23:45:04
  • 跨域请求头(跨域请求头的含义)2025-05-23 23:45:04
  • 删除虚拟环境(删除虚拟环境后包会一起删除吗)2025-05-23 23:45:04
  • 科技sdk验证码(qz科技验证码)2025-05-23 23:45:04
  • 本机的信息(设置的本机信息)2025-05-23 23:45:04
  • 全屏图片