【10分钟学Spring】:@Profile、@Conditional实现条件化装配
根据不同的环境来装配不同的bean 企业级开发中,我们一般有多种环境,比如开发环境、测试环境、UAT环境和生产环境。而系统中有些配置是和环境强相关的,比如数据库相关的配置,与其他外部系统的集成等。 如何才能实现一个部署包适用于多种环境呢? Spring给我们提供了一种解决方案,这便是条件化装配bean的机制。最重要的是这种机制是在运行时决定该注入适用于哪个环境的bean对象,不需要重新编译构建。 下面使用Spring的profile机制实现dataSource对象的条件化装配。 1、给出开发环境、测试环境、生产环境dataSource的不同实现类 说明:此处只为演示条件化装配bean,不做真实数据源对象模拟。 public interface DataSource { void show(); } public class DevDataSource implements DataSource{ public DevDataSource(){ show(); } public void show() { System.out.println("开发环境数据源对象"); } } public class TestDataSource implements DataSource{ public TestDataSource() { show(); } public void show(