[转]spring学习笔记7.自动装配(补充)
2011-08-29 16:14
253 查看
一、 自动装配autowire
含义:在bean注入时不需要我们来指定注入哪个具体的bean,而spring容器会根据我的使用autowire属性来确定自动装配功能。autowire值:
1、 autodetect;
2、 byName:根据bean中成员属性的名称来自动装配
3、 byType:根据bean中成员属性的类型来自动装配。
4、 constaractor
5、 default:会根据<beans>标签中的default-autowire属性来进行自动装配的方式
6、 no(默认就是这个,需要手动指定注入那个bean)
(一) byName
根据bean中成员属性的名称来自动装配。bean代码:
UserDaoImpl类
public class UserDaoImpl implements UserDao {
private int daoId;
public int getDaoId() {return daoId;}
public void setDaoId(int daoId) {this.daoId = daoId; }
@Override
public String toString(){
return "daoId=" + this.daoId;
}}
UserService类
public class UserService {
private UserDao userDao = new UserDaoImpl();
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(User u){
userDao.save(u);
}}
spring的配置文件
<bean id="userDao" class="com.wjt276.dao.impl.UserDaoImpl" >
<property name="daoId" value="1"></property>
</bean>
<bean id="userDao2" class="com.wjt276.dao.impl.UserDaoImpl" >
<property name="daoId" value="2"></property>
</bean>
<bean name="userService" class="com.wjt276.service.UserService" scope="prototype" autowire="byName">
</bean>
测试代码:
public void testAdd_4() throws Exception {
ApplicationContext factory = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)factory.getBean("userService");
System.out.println(service.getUserDao());
}
结果:daoId=1
说明:因为在配置文件中配置了两个UserDaoImpl(名称分别:userDao、userDao2)和一个UserService类。而在userService的bean中并没有进行注入配置。而是使用了autowire属性指定了byName值,这样结果是正确的,是因为spring看到autowire=byName后,会在配置文件中查找bean的id与userService成员属性名称一至,然后将其注入,这样就完成了根据名称自动装配功能。
(二) byType
根据类型自动装配:就是spring在初始化时,会在配置文件中查找<bean>的类型与userService成员属性的类型相比较,类型一致的将其注入,这样就完成了根据类型自动装配。(三) 注意
1、 自动装配使用并不多;2、 只有在使用anntation注解时会使用的。
3、 byType如果出现相同类型在两个以上,就会出现异常。
相关文章推荐
- Spring学习笔记(8.Spring Bean装配之自动装配)
- Spring 学习笔记【一】自动装配bean
- [原]spring学习笔记7.自动装配
- Spring学习笔记——Spring的自动装配
- spring in action 学习笔记(八)自动装配
- Spring学习笔记--自动装配Bean属性
- 【JavaEE学习笔记】Spring_02_IoC/DI依赖注入,集合对象属性注入,自动装配,代理模式
- SpringInAction 学习笔记:自动装配歧义性处理
- Spring视频学习笔记(3)Bean的作用域及自动装配
- spring学习笔记三 自动装配
- Spring4 学习笔记(5)-Spring 的自动装配
- Spring学习笔记之自动装配
- Spring学习笔记-自动装配
- spring学习笔记(4)——配置文件配置bean自动装配
- Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配
- Spring4学习笔记(五):Bean的自动装配
- Spring 学习笔记(2)——自动装配
- Spring 学习笔记 -beans 的自动扫描与装配和管理
- [Spring]Bean的自动装配Autowire【学习笔记】
- Spring学习笔记01-自动装配-SpEL-生命周期-后置处理器(未完)