Spring Boot 之自动化配置和条件化配置(带源码解析)
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
// 定义一个条件:在指定的profile激活时才创建Bean
@Profile("production")
@Configuration
public class ProductionConfiguration {
@Bean
public String productionBean() {
return "这是生产环境的Bean";
}
}
// 定义一个条件:在没有指定的profile激活时才创建Bean
@Profile("!production")
@Configuration
public class DevelopmentConfiguration {
@Bean
public String developmentBean() {
return "这是开发环境的Bean";
}
}
// 使用示例
// 运行Spring Boot应用时,可以通过传递命令行参数--spring.profiles.active=production来激活配置
// 或者在application.properties或application.yml中设置spring.profiles.active=production
// 这样,根据激活的profile不同,Spring Boot会选择性地创建Bean。
这个代码示例展示了如何在Spring Boot中使用@Profile
注解来根据当前激活的profile来条件化地配置Bean。如果激活的profile是production
,则会创建ProductionConfiguration
中定义的Bean;如果激活的profile不是production
,则会创建DevelopmentConfiguration
中定义的Bean。这种配置方式可以用于多环境的配置管理,是Spring Boot中一个非常实用的特性。
评论已关闭