1.spring boot 配置
默认读取application.properties
现在大家常用application.yml
最简单properties->yml
只需要把=替换成:空格
info.app: actuator-demo
info.phone: 1234466
但是yml适合下面这种层级关系
yml能保证上下顺序问题,properties不能保证顺序
# 描述信息
info:
app: actuator-demo
phone: 1234466
2.配置方式
获取配置的方式有多达 17 种
1.在主目录(当 devtools 被激活,则为 ~/.spring-boot-devtools.properties )中的 Devtools 全局设置属性。
2.在测试中使用到的 @TestPropertySource 注解。
3.在测试中使用到的 properties 属性,可以是 @SpringBootTest 和用于测试应用程序某部分的测试注解。
4.命令行参数。
5.来自 SPRING_APPLICATION_JSON 的属性(嵌入在环境变量或者系统属性【system propert】中的内联 JSON)
6.ServletConfig 初始化参数。
7.ServletContext 初始化参数。
8.来自 java:comp/env 的 JNDI 属性。
9.Java 系统属性(System.getProperties())。
10.操作系统环境变量。
11.只有 random.* 属性的 RandomValuePropertySource。
12.在已打包的 fatjar 外部的指定 profile 的应用属性文件(application-{profile}.properties 和 YAML 变量)。
13.在已打包的 fatjar 内部的指定 profile 的应用属性文件(application-{profile}.properties 和 YAML 变量)。
14.在已打包的 fatjar 外部的应用属性文件(application.properties 和 YAML 变量)。
15.在已打包的 fatjar 内部的应用属性文件(application.properties 和 YAML 变量)。
16.在 @Configuration 类上的 @PropertySource 注解。
17.默认属性(使用 SpringApplication.setDefaultProperties 指定)
2.1 常用配置
配置文件
环境变量
外部配置
命令行参数
2.1.1 环境变量
server:
port: ${port}
再环境变量中配置
enviroment variables
port=9999
${port:9992}表示如果没有配置port参数则默认取9992
也可以启动时设置
java -jar test-springboot-demo.jar --port=9998
2.1.2 外部配置
在jar包中外放一个application.yml中设置
jar包外的优先级高于jar包内的配置文件
server:
port: 9991
java -jar .\test-springboot-demo.jar
启动,端口为9991
2.1.3 命令行
java -jar .\test-springboot-demo.jar --server.port=9992
问题
如果--已经配置了参数还是报错could not resolve placeholder
请检查启动类SpringApplication.run(ActuatorApplication.class,args);是否配置args参数
网友评论