1、接着之前的测试代码
2、新添加测试类--条件类
public class MagicExistsCondition implements Condition{
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
return false;
}
}
3、修改配置类
@Configuration//配之类
@ComponentScan//扫描的基础包
public class CDPlayConfig {
@Profile("prod")//在生产环境中创建该bean
//@Bean("compactDisc")
public CompactDisc SgtPeppers(){
return new SgtPeppers();
}
@Profile("prod")//在开发环境中创建该Bean
@Bean("compactDisc")
public CompactDisc JtTest(){
return new JtTest();
}
@Profile("prod")//在开发环境中创建该Bean
@Bean("conditionTest")
@Conditional(MagicExistsCondition.class)//条件类返回true时才创建该bean实例
public CompactDisc ConditionTest(){
return new SgtPeppers();
}
}
4、测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CDPlayConfig.class)
@ActiveProfiles("prod")//spring中profile的应用
public class TestClass {
@Autowired
private CompactDisc compactDisc;
@Autowired
private CompactDisc conditionTest;
@Test
public void test(){
compactDisc.play();
conditionTest.playDev();
}
}
条件类实现Condition接口,通过实现matches方法进项条件判断