Profile多环境配置
Spring Boot框架提供了多环境配置的方式,分别是Profile文件多环境配置和@Profile注解多环境配置。
使用Profile文件进行多环境配置
- 在Spring Boot框架中,使用Profile配置文件进行多环境配置时,该配置文件名必须满足application-{profile}.properties的格式,其中{profile}对应具体的环境标识。
- 示例
application-dev.properties //开发环境配置文件
application-test.properties //测试环境配置文件
application-prod.properties //生产环境配置文件
...
对应配置文件: 使用不同的端口号进行启动测试
server.port=801x
在主配置类application.properties中激活开发配置文件
#指定要激活的profile多环境配置文件
spring.profiles.active=dev
#也可以在控制台执行下列命令激活环境配置
java -jar xxx.jar --spring.profiles.active=dev
- 启动当前项目主类,可以看到端口号变为我们配置文件配置的端口
使用@Profile注解进行多环境配置
除了使用Profile文件进行多环境配置外,还可以使用@Profile注解进行多环境配置。
@Profile注解主要作用于类,并通过value属性指定配置环境(等同于Profile文件名称中的profile值)
使用@Profile注解配置的环境,同样需要在全局配置文件中激活。
- 示例
// config包下添加Profile注解多环境配置
@Configuration
@Profile("dev")
public class DevDBConnector {
public void configure(){
System.out.println("数据库配置环境dev");
}
}
//在controller包下创建类
@RestController
public class DBController {
@Autowired
private DevDBConnector devDBConnector;
@GetMapping("/showDB")
public void showDB(){
devDBConnector.configure();
}
}
- 启动SpringBoot项目测试 localhost:808x/showDB,可在控制台看到结果
随机值设置以及参数间引用
在配置文件中设置属性时,除了可以通过之前的直接赋值配置属性外,还可以使用随机值和参数间
引用来对属性值进行设置。
- 随机值设置
- 使用Spring Boot内嵌的RandomValuePropertySource类。
- 随机值设置的语法格式为${random.xx},xx表示指定生成的类型和范围
my.string=${random.value} //配置随机字符串
my.number=${random.int} //配置随机整数
my.bignumber=${random.long} //配置随机long类型数
my.uuid=${random.uuid} //配置随机UUID类型数
my.number=${random.int(10)} //配置小于10的随机整数
my.number=${random.int[1024,65536]} //配置在1024-65536之间的随机整数
- 参数间引用
- 参数间引用的语法格式为${xx},xx表示已经配置过的属性名
app.name=MyApp
app.description=${app.name} is a Spring Boot application
- 测试
#随机值设置以及参数间引用配置
my.number=${random.int(10)}
my.numberIs= my number is ${my.number}
在测试类中测试placeholderTest方法,可以得到结果
@Value("${my.numberIs}")
private String numberIs;
@Test
void placeholderTest(){
System.out.println(numberIs);
}