SpringBoot配置顺序解析
2025-02-08 11:21:25 0 举报
用于分析SpringBoot配置文件的优先级
作者其他创作
大纲/内容
添加一个能产生随机数的1. commandLineArgs2. servletConfiglnitParams3. servletContextlnitParams4. systemProperties5. systemEnvironment6. random7.defaultProperties
解析上述所有路径,解析真正存在的文件路径
在每个配置文件中可以通过spring.config activate.on-profile=devspring.config.activate.on-cloudPlatform=CLOUD_FOUNDRY来指定配置文件生效的前提
1. commandlineArgs2. vcap3. spring.application json4. servletConfiglnitParams5. servletContextlnitParams6. systemProperties7. systemEnvironment8. random9. application-dev.properties10. application-dev.yml11. application.properties12. application.yml13. defaultProperties
app指application,没写全用户指定的配量文件路径优先级最高,默认情况下file目录高于classpath目录某个目录下properties文件优先级高于yml文件
把最后胜出的配置文件生成对应的PropertySource添加到Environment中
按当前的支持的profiles和cloudPlatform来过滤配置文件中没有匹配的,以及匹配的则会胜出
去各个目录下找配置文件,可以通过spring.config.name来配置文件名,默认为application
添加一个RandomValuePropertySource
从以上所有配置中找spring-profiles.active,找出对应的值,然后按指定的值再去找对应的文件。比如dev
从已有Environment中读取spring-application.json配置
添加运行时命令行中设量的参数比如: java -jar springbootdemo.jar --server.port=88881. commandLineArgs2. servletConfiglnitParams3. servletContextlnitParams4. systemProperties5. systemEnvironment6. defaultProperties
添加DefaultProperties
添加-Dspring.application.json参数配量的1. commandLineArgs2. spring.application.json3. servletConfiglnitParams4. servletContextlnitParams5. systemProperties6. systemEnvironment7. random8. defaultProperties
添加servlet、servlet容器、操作系统、JVM环境变量比如: java -jar -Dserver.port=8887 springbootdemo.jar1. servletConfigInitParams2. servletContextInitParams3. systemProperties4. systemEnvironment
注意:这里并不是解析每个文件生成PropertySource,添加到Environment对象中,这里只是先解析出来PropertySource对象,并按顺序放到一个集合里面
如果当前是在CLOUD_FOUNDRY上
查找配置文件的目录,顺序为classpath:/zhouyu/file:./config/*/file:./configfile:./classpath:/config/classpath:/
添加云平台相关的1.commandlineArgs2. vcap3. spring.application json4. servletConfiglnitParams5. servletContextlnitParams6. systemProperties7.systemEnvironment8. random9. defaultProperties
通过配置新增的比如classpath:/zhouyu/默认的optional:file:./;optional:file:./config/;optional:file:./config/*/optional:classpath:/;optional:classpath:/config/
添加默认的,通过SpringApplication的setDefaultProperties()方法设量的1. servletConfiglnitParams2. servletContextlnitParams3. systemProperties4. systemEnvironment5. defaultProperties
spring.config.location(如果指定了,默认的会失效)spring.config.import(在默认的基础上新增)spring.config.additional-location(在默认的基础上新增)获取这三个参数指定的路径
创建Enviroment对象
span style=\"font-size:14px; font-family:微软雅黑; color:#19191a; letter-spacing:0px;\
0 条评论
下一页