SpringBoot配置文件的加载位置

1、springboot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件

--file:/config/
--file:/
--classpath:/config/
--classpath:/

优先级由高到低,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这个四个位置全部加载住配置文件;互补配置;

我们还可以通过spring.config.location来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的行驶,启动项目的时候来指定配置文件的新位置;指定的配置文件和默认加载的这些配置文件共同起作用形成互补配置

2、外部配置加载顺序
SpringBoot支持多种外部配置方式
这些方式优先级如下:
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config
SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会行成互补配置;
1.命令行参数
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
6.jar包 外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7..jar包 内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
8..jar包 外部的application.properties或application.yml(不带spring.profile)配置文件
9.jar包 内部的application.properties或application.yml(不带spring.profile)配置文件
[email protected]注解类上的@PropertySource
11.通过SpringApplication.setDefaultProperties指定的默认属性

3、SpringBoo配置-自动配置原理
精髓:
1)、SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们不需要再来配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类当中获取某些属性,我们就可以在 配置文件中指定这些属性的值;

xxxAutoConfiguration:自动配置类;
给容器中添加组件
xxxProperties:封装配置文件中相关属性;

4、自动配置类必须在一定的条件下才能生效;
我们怎么知道哪些自动配置类生效;
我们可以通过启用debug:true属性;来让控制台打印 自动配置报告,这样我们就可以很方便的知道哪些自动配置类生效;

原文地址:https://www.cnblogs.com/cykj/p/SpringBoot-configfile.html

时间: 2024-08-30 05:03:30

SpringBoot配置文件的加载位置的相关文章

spring-boot学习五:Spring boot配置文件的加载位置

1.配置文件的加载位置 spring boot启动的时候会加载全局配置文件application.properties(或者application.yaml)文件,这个文件默认的位置在: 即classpath:/的相对路径下.这个配置文件除了可以在resource下之外,还可以在如下位置: 在classpath:/config/即resources/config下: 在当前工程文件的config文件夹下: 在当前工程的相对路径下: 2.配置文件的加载顺序 以上所说的四个文件的优先级如下: app

Thinkphp配置文件的加载

若应用的配置文件比较大,可以分成几个单独的配置文件或者需要加载额外的配置文件的话,可以采用扩展配置或者动态配置. 配置文件的加载顺序为: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置 在没有生效的情况下,后面的配置文件会覆盖前面的同名配置,故优先从右到左. 惯例配置:ThinkPHP/Conf/convention.php 应用配置:Application/Common/Conf/config.php 模式配置:Ap

web.xml中如何设置配置文件的加载路径

web应用程序通过Tomcat等容器启动时,会首先加载web.xml文件,通常我们工程中的各种配置文件,如日志.数据库.spring的文件等都在此时被加载,下面是两种常用的配置文件加载路径,即配置文件可以放到 SRC目录下或者可以放到WEB-INF根目录下 第一种在web.xml中这样配置: <context-param> <param-name >contextConfigLocation </param-name > <param-value >clas

用Go自己实现配置文件热加载功能

说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上的配置文件不是想改就能改的. 这次就自己实现一个配置文件的热加载功能的包,并通过一个简单的例子对完成的包进行使用验证 配置文件热加载包的是实现 其实整体的思路还是比较简单的,当获取配置文件内容后,会开启一个goroutine,去 循环读配置文件,当然这里不可能不限制的一直循环,而是设置了一个定时器,

从源码来理解slf4j的绑定,以及logback对配置文件的加载

https://www.cnblogs.com/youzhibing/p/6849843.html 编译期间,完成slf4j的绑定已经logback配置文件的加载.slf4j会在classpath中寻找org/slf4j/impl/StaticLoggerBinder.class(会在具体的日志框架如log4j.logback等中存在),找到并完成绑定:同时,logback也会在classpath中寻找配置文件,先找logback.configurationFile.没有则找logback.gr

Spring Boot配置文件的加载顺序

配置文件的加载顺序, 后加载的会覆盖先加载的:也就是properties配置文件的内容会替换掉.yml及.yaml文件的内容 原文地址:https://www.cnblogs.com/niwotaxuexiba/p/10849376.html

dubbo配置文件的加载顺序详解(图示)

Dubbo配置文件的加载顺序 ? 在使用apache dubbo.version2.7.3 时,配置文件的加载情况.以provider提供服务者为例. 配置文件 ,以下四个配置文件. 其优先级 application.properties #Dubbo config dubbo.application.name=boot-ego-user-service-provider dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protoc

php.ini的加载位置

php.ini文件找不到,加载WINDOS下的,但找不到,后来强制-c查找是OK的,思考,为什么加载window下的ini文件.1.可能是有一个默认路径,2.可能没有路径,默认加载. 问题解决:http://php.net/manual/zh/configuration.file.php,,中有详细介绍php.ini的引用问题,寻找注册表,使用运行->regedit,打开注册表hkey-local-machine-software-php,但是我的电脑里面php是在PHPstudy集成环境中装的

Eclipse SpringBoot 关闭热加载

前段时间使用热加载,感觉很新鲜. 开发阶段确实比较好用. 所以来分享一个关闭热加载的方法. 开启热加载: 1.pom.xml中添加 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <