IOC-类型注入的详解
按名称注入:@Resource(name=”组件名”)
根据组件名在spring容器中寻找该组件对象,
找不到组件对象,spring会报异常
按类型注入:@Resource
先根据变量名作为组件名,在spring中进行查找;
若找不到,再根据变量类型在spring容器中寻找该组件对象,
找不到组件对象/找到了多个组件对象,spring都会报异常
先按类型注入,如果有多个对象,再名称注入
应用:
配置类:
@Configuration
@ComponentScan(basePackages = {"com.czxy.demo4"})
public class SpringConfiguration {
@Bean
public Demo4Dao getDemo4Dao(){
return new Demo4DaoImplB();
}
}
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfiguration.class})
public class Demo4Test {
@Resource(name="d4a")
private Demo4Dao demo4Dao1;
/*
* Resource注解进行按类型注入,没有赋予组件名
* 会把变量名作为组件名。
* 先在spring容器中寻找name="d4a",
* 找不到再按类型注入
* */
@Resource
private Demo4Dao d4a;
/*
* 需求:向Demo4Dao接口中,注入Demo4DaoImplB的对象,对象是通过getDemo4Dao拿到的
* */
@Resource(name="getDemo4Dao")
private Demo4Dao demo4Dao2;
@Resource
private Demo4Dao getDemo4Dao;
@Test
public void run1(){
}
}
看完恭喜你,又进步了一点点!!!
你知道的越多,不知道的越多!
~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!