在配置文件中使用自定义参数
myport=8080
server.port=${myport}
在代码里面使用自定义参数
通过注解@Value
来加载自定义参数
- PlaceHolder方式 ${} 例@Value("${abc}")
- SpEL方式 #{} 例@Value("#{abc}")
在配置文件中使用随机数
- 随机字符串
com.zml.str=${random.value} - 随机int
com.zml.intval=${random.int} - 随机long
com.zml.longval=${random.long} - 10以内的随机数
com.zml.intval=${random.int(10)} - 10-20随机数
com.zml.intval=${random.int[10,20]}
使用不同配置文件启动
创建一个简单的springboot应用
创建三个配置文件application.properties,application-dev.properties,application-test.properties
application.properties
spring.profiles.active=dev
application-dev.properties
spring.application.name=config-client
server.port=8080
application-test.properties
spring.application.name=config-client
server.port=8081
启动之后,系统使用了8080端口启动,使用dev配置文件
在通过java -jar方式启动的时候,可以通过带参数,在启动的时候动态使用配置文件,不带参数,默认使用application.properties里面配置的配置文件
java -jar xxx.jar --spring.profiles.active=test
系统使用8081端口,使用test配置文件
配置文件加载顺序
优先级由高到低
- 在命令行中传入的参数
- SPRING_APPLICATION_JSON中的属性。SPRING_APPLICATION_JSON是以json格式配置在系统环境变量中的内容
- java:comp/env中的JNDI属性
- java的系统属性,可以通过System.getProperties()获取的内容。
- 操作系统的环境变量
- 通过random.*配置的随机属性
- 位于当前应用jar包之外,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是yaml定义的配置文件
- 位于当前应用jar包之内,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是yaml定义的配置文件
- 位于当前应用jar包之外,application.properties和yaml定义的配置文件
- 位于当前应用jar包之内,application.properties和yaml定义的配置文件
- 在@Configuration注解修改的类中,通过@PropertySource注解定义的属性
- 应用默认属性,使用SpringApplication.setDefaultProperties定义的内容
网友评论