使⽤spring.profiles.active及@profile注解动态化配置内部及外
部配置
引⾔:使⽤ spring.profiles.active 参数,搭配@Profile注解,可以实现不同环境下(开发、测试、⽣产)配置参数的切换
⼀.根据springboot的配置⽂件命名约定,结合active可在不同环境引⽤不同的properties外部配置
参考官⽅⽂档:
根据⽂档描述,我们除application.properties外,还可以根据命名约定(命名格式:application-{profile}.properties)来配置,如果active赋予的参数没有与使⽤该命名约定格式⽂件相匹配的话,app则会默认从名为application-default.properties 的配置⽂件加载配置。
如:spring.profiles.active=hello-world,sender,dev 有三个参数,其中 dev 正好匹配下⾯配置中的application-dev.properties 配置⽂件,所以app启动时,项⽬会先从application-dev.properties加载配置,再从application.properties配置⽂件加载配置,如果有重复的配置,则会以application.properties的配置为准。(配置⽂件加载顺序详见官⽅⽂档:24. Externalized Configuration)
如此,我们就不⽤为了不同的运⾏环境⽽去更改⼤量的环境配置了(此处,dev、pro、test分别为:开发、⽣产、测试环境配置)
⼆.通过@Profile注解匹配active参数,动态加载内部配置
参考官⽅⽂档:
1.@Profile注解使⽤范围:@Configration 和 @Component 注解的类及其⽅法,其中包括继承了@Component的注解:@Service、
@Controller、@Repository等…
2.@Profile可接受⼀个或者多个参数,例如:
@Profile({"tut1","hello-world"})
@Configuration
public class Tut1Config {
@Bean
public Queue hello() {
return new Queue("hello");
}
@Profile("receiver")
@Bean
public Tut1Receiver receiver() {
return new Tut1Receiver();
}
@Profile("sender")
@Bean
public Tut1Sender sender() {
return new Tut1Sender();
}
spring怎么读取properties}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论