写在前面
在实际的项目中,会有-dev,-prod,-local等不同的运行环境,有时需要能够根据当前的运行/部署环境动态激活或者切换相关的组件场景,针对该场景我们可以借助 Spring 提供的 @Profile 注解来实现。
注解说明
@Profile注解用于指定某些组件在特定的运行环境下才会被注册到SPRING容器中,若不使用该注解,则在任何环境下都能注册这个组件到SPRING容器中。
如何使用
A. 与@Component、@Configuration、@Bean注解配合使用;
B. @Profile中需要指定一个字符串,这个字符串表明生效的环境,一般和application-XXX.yml对应;
C. @Profile可以标注在类、方法或者是注解上;
D. 需要与spring.profiles.active=dev的激活配置配合使用。
激活注解
一般在实际项目中有4个配置文件,分别在不同的场景下使用:
applcation.yml # 公共配置, 一般存放不会因为运行环境不同而改变的信息
application-dev.yml # 开发环境配置
application-test.yml # 测试环境配置
application-prod.yml # 生产环境配置
在 applcation.yml 文件中可以通过以下配置来激活profile:
spring:
profiles:
active: prod
或者
System.setProperty("spring.profiles.active", "prod");
或者
java -jar spring-boot-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod;