${random.value}、${random.int}、${random.long}
${random.int(10)}、${random.int[1024,65536]}配置
person.age=${random.int}
person.last-name=李四
person.age=12
person.dog.name=${person.last-name:哈巴}_狗
如果last-name没有值,默认使用哈巴。
person.age=12
person.dog.name=${person.last-name:合并}_狗
如果last-name没有设置,默认为本身字符串${person.last-name:合并}_狗
1、多Profile文件
格式:application-{profile}.properties/yml:
案例: application-dev.properties、application-prod.properties
加载的时候读取application.properties的配置,里面有设置激活哪个(dev,prod)的文件 。
案例
2、yml支持多文档块方式
3、激活指定profile
1、在配置文件中指定 spring.profiles.active=dev
这个就是刚刚前面讲的1,2内容
2、命令行:
java -jar 项目名.jar --spring.profiles.active=dev或者在虚拟机上配置--spring.profiles.active=dev。
案列:下面我们配置上激活的8083端口,当我们使用上面的命令是,启动的端口变为8082
server: #默认设置8081端口 port: 8081 spring: profiles: #激活prod设置,会覆盖默认设置的相同属性 active: prod --- server: port: 8082 spring: profiles: dev --- server: port: 8083 spring: profiles: prod
3、虚拟机参数;
-Dspring.profiles.active=dev
1 SpringBoot会从下面四个位置全部加载主配置文件application.properties或者application.yml文件;优先级由高到底,高优先级的配置会覆盖低优先级的配置,互补配置;
–file:./config/..../application.properties
–file:./..../application.properties
–classpath:/config/..../application.properties
–classpath:/..../application.properties
2通过spring.config.location来改变默认的配置文件位置,指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
java -jar 包名.jar -spring.config.location=配置文件
案列
H:/java/jdk1.8.0_181/bin/java -jar spring-book-config-0.0.1-SNAPSHOT.jar --spring.config.location=H:/test/application.properties
配置文件配的是8082端口,项目中配的是8081端口,发布后实际是8082端口。
SpringBoot也可以从以下位置加载配置; 优先级从高到低,高优先级的配置覆盖低优先级的配置,互补配置。
1.命令行参数(发布时候使用)
java -jar 包名.jar --配置项=值 空格 --配置项=值.........
案列
java -jar spring-boot-02-config.jar --server.port=8087 --server.context-path=/abc
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
由jar包外向jar包内进行寻找;
优先加载带profile(profile:就是前面讲的激活文件)
6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
再来加载不带profile
8.jar包外部的application.properties或application.yml(不带spring.profile)配置文件
9.jar包内部的application.properties或application.yml(不带spring.profile)配置文件
案例:
java -jar 包名.jar -spring.config.location=配置文件
读取jar包外的文件,覆盖jar内部的相同属性。
10.@Configuration注解类上的@PropertySource
11.通过SpringApplication.setDefaultProperties指定的默认属性