SpringBoot应用的配置
配置叠加顺序: PropertySourcesPropertyResolver负责从多个PropertySource中解析属性值
命令行参数 (例如:--server.port=7788)
系统属性 (例如:-Dserver.port=7788)
环境变量(例如:SERVER_PORT=7788)(点和减号替换为下划线,全大写) (在docker下,这种方式尤其好用)
application-***.properties或yml (特定环境配置:spring.profiles.active决定)
application.properties或yml(默认配置)
bootstrap.properties或yml(引导配置)
@PropertySource加载的资源(自定义配置)
其中:
application和bootstrap,按3个位置搜索,每个搜索位置如果存在properties、yml文件,则properties在先,yml在后
config目录
.当前目录
classpath:/类路径
配置使用:
注解:@ConfigurationProperties 在IOC的后处理器中,配置对象属性值
Relaxed Binding机制
注解:@Value(${aaa.bbb:}) 用于Bean的属性或方法,匹配单一配置
注入:org.springframework.core.env.Environment
或者注入:org.springframework.core.env.PropertyResolver
或者获取:ConfigurableApplicationContext.getEnvironment()
调用:env.getProperty()
特殊的变量:
系统端口:server.port = 0 (表示分配随机端口) 环境变量特殊用(SERVER_PORT替代,serverPort, server.port)
真实端口:local.server.port (但是这个变量,在容器初始化完成以后才有值)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。