首页 > 其他分享 >SpringBoot的配置文件application.yml及加载顺序详解

SpringBoot的配置文件application.yml及加载顺序详解

时间:2023-11-30 13:56:35浏览次数:54  
标签:SpringBoot 配置文件 目录 application config yml 加载

SpringBoot配置文件application.yml及加载顺序

配置文件分类

1. SpringBoot中4级配置文件

  • 1级(工程路径config目录配置文件):file:config/application.yml [最高]
  • 2级(工程路径目录配置文件):file:application.yml
  • 3级(项目类路径config目录配置文件):classpath:config/application.yml
  • 4级(项目类路径目录配置文件):classpath:application.yml [最低]

2. 作用:

  • 1级与2级留做系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控,2级服务于运维人员配置涉密线上环境
  • 3级和4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控,4级服务于开发人员本机开发与测试

3. 注意:

多层级配置文件间的属性采用叠加并覆盖的形式作用于程序。

自定义配置文件

\1. 配置文件可以修改名称,通过启动参数设定

\2. 配置文件可以修改路径,通过启动参数设定

3.微服务开发中配置文件通过配置中心进行设置

配置文件总结

\1. SpringBoot在开发和运行环境均支持使用临时参数修改工程配置

\2. SpringBoot支持4级配置文件,应用于开发与线上环境进行配置的灵活设置

\3. SpringBoot支持使用自定义配置文件的形式修改配置文件存储位置

4.基于微服务开发时配置文件将使用配置中心进行管理

Springboot中application.yml、application.properties和bootStrap.yml加载顺序

SpringApplication位于项目根目录

所以所有得代码要和SpringApplication所在目录平级或下一级

以jar包发布springboot项目时

默认会先使用jar包跟目录下的application.properties来作为项目配置文件。

如果在不同的目录中存在多个配置文件,它的读取顺序是:

  • 1、config/application.properties(项目根目录中config目录下)
  • 2、config/application.yml
  • 3、application.properties(项目根目录下)
  • 4、application.yml
  • 5、resources/config/application.properties(项目resources目录中config目录下)
  • 6、resources/config/application.yml
  • 7、resources/application.properties(项目的resources目录下)
  • 8、resources/application.yml

**注: **

1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。

2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。

3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”

4、先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载

若application.yml 和bootStrap.yml 在同目录下

则bootStrap.yml 的加载顺序要于application.yml,即bootStrap.yml 会优先被加载。

原理:

bootstrap.yml 于应程序上下的引导阶段。

bootstrap.yml 由Spring ApplicationContext加载。

  • bootstrap.yml 可以理解成系统级别的⼀些参数配置,这些参数⼀般是不会变动的。
  • application.yml 可以⽤来定义应⽤级别的,如果搭配 spring-cloud-config 使用 application.yml 定义的文件可以实现动态替换。

总结

标签:SpringBoot,配置文件,目录,application,config,yml,加载
From: https://www.cnblogs.com/sjkzy/p/17867155.html

相关文章

  • Springboot开发的应用为什么这么占用内存
    Springboot开发的应用为什么这么占用内存Java的原罪Java程序员比c或者是c++程序员相比轻松了很多.不要管理繁杂的内存申请与释放,也不用担心因为忘记释放内存导致很严重的内存泄漏.因为JAVA使用GC垃圾回收的机制实现了内存的自动管理.自凡是自动管理,就需要有单独的内存......
  • .net 读取配置文件 使用DI方式
    需要引用包:Microsoft.Extensions.Configuration配置文件类库Microsoft.Extensions.Configuration.Binder将配置文件转换成实体类的类库Microsoft.Extensions.Configuration.Json读取Json文件的类库Microsoft.Extensions.DependencyInjectionDI类库Microsoft.Extensions.O......
  • .net 读取配置文件
    .net可以读取多种不同类型的配置文件,如:json、xml、ini等。读取配置文件需要使用到的包:Microsoft.Extensions.Configuration读取配置文件主要类库Microsoft.Extensions.Configuration.Binder将配置文件转换为实体类的类库Microsoft.Extensions.Configuration.Json读取json......
  • 【SpringBoot】单元测试报错java.lang.IllegalStateException: Could not load TestCo
    一、运行test类方法时候报错 二、分析原因,发现版本不一致 三、找到pom文件, 把<version>RELEASE</version>注释掉,刷新一下maven依赖 四:修改后,依赖版本一致。 这样,就可以运行了。 ......
  • 学了SpringBoot的令牌
    packagecom.itheima.bigeventadmin.utils;importcom.auth0.jwt.JWT;importcom.auth0.jwt.algorithms.Algorithm;importjava.util.Date;importjava.util.Map;publicclassJwtUtil{privatestaticfinalStringKEY="itheima";//接收业......
  • springboot可以同时处理多少请求
    https://www.bilibili.com/video/BV1Ck4y1F76o/?spm_id_from=333.999.0.0&vd_source=a3fefff79a3be320da3db60b271f05c9  ......
  • SpringBoot电子病历编辑器源码
    电子病历系统以服务临床业务工作开展为核心,为全院医护人员、业务管理人员、院级领导提供流程化、信息化、自动化、智能化的临床业务综合管理平台。同时,随着电子病历数据的不断累积,它将成为动态的智能的信息源,发挥传统纸质静态病历难以实现的重要作用,为医务人与的科研、教学提供准......
  • .Net Core 单元测试获取配置文件节点值
     单元测试类:ServiceProvider_serviceProvider;IConfiguration_config;[SetUp]publicvoidSetup(){_config=newConfigurationBuilder().Add(newJsonConfigurationSource{Path="appsettings.jso......
  • SpringBoot JPA实践之EntityManage查询返回自定义DTO entityManager.createNativeQuer
    SpringBootJPA实践之EntityManage查询返回自定义DTOentityManager.createNativeQuery(sql)  在很多时候我更喜欢随意组合查询出来返回一个DTO对象的实现,JPA提供的多数查询均以返回Entity居多,它提供的EntityManager对象可以实现将SQL语句查询的结果转换为自定义DTO对象(这与......
  • 使用React+SpringBoot开发一个协同编辑的表格文档
    本文由葡萄城技术团队发布。转载请注明出处:[葡萄城官网],葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言随着云计算和团队协作的兴起,协同编辑成为了许多企业和组织中必不可少的需求。通过协同编辑,多个用户可以同时对同一个文档进行编辑和更新,从而提高工作效......