Spring3.0中动态条件注入组件的两种方式
当满足某种条件时会向Spring容器中自动注入Bean
1.需求说明
在Spring容器中设置两个名字相同的Bean,但是在特定条件下只会注入其中的一个或者不注入,
例如:woman触发返回woman的Bean,man触发man的Bean
2.配置类
先注册两个名称相同的Bean
@Configuration
public class DemoConfig {
@Bean("bean")
public String m1(){
return "woman";
}
@Bean("bean")
public String m2(){
return "man";
}
}
3.没有注解的测试类
@RunWith(SpringRunner.class)//测试设置
@ContextConfiguration(classes =DemoConfig.class)//加载测试的类
public class DemoTest {
//注入Bean
@Resource
private String bean;
//测试方法
@Test
public void testM(){
System.out.println(bean);
}
}
4.测试结果:
遵循原则:当名字相同时先注册到容器中的先执行