博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot配置文件的加载位置
阅读量:6853 次
发布时间:2019-06-26

本文共 1472 字,大约阅读时间需要 4 分钟。

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)配置文件
10.@configuration注解类上的@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

你可能感兴趣的文章
Entity Framework 4 in Action读书笔记——第一章:数据访问重载:Entity Framework(3)...
查看>>
review过去的10年
查看>>
JAVA加密
查看>>
java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.getTempDirectory()Ljava/io/File;
查看>>
第三课:叠加法和戴维南法
查看>>
395. Longest Substring with At Least K Repeating Characters
查看>>
foreach 與 reference 的雷
查看>>
db2缓冲池调优
查看>>
Sicily_How can I go
查看>>
NYOJ_456_邮票分你一半
查看>>
NYOJ_44_子串和
查看>>
kafka整理笔记笔记
查看>>
The Zip, GZip, BZip2 and Tar Implementation For .NET
查看>>
BZOJ4521:[CQOI2016]手机号码(数位DP)
查看>>
C/C++ rand()产生随机数 模拟 掷骰子 小游戏代码
查看>>
openfire 访问 user service 插件 访问不到
查看>>
linux 下 easy_install 安装
查看>>
生成唯一编码
查看>>
C# Directory.GetFiles()获取文件时如果是根目录时有隐藏文件则报错的处理
查看>>
POJ 3320 (尺取法+Hash)
查看>>