Spring_004_AutoWire(自动装配)

自动装配,官方给出的定义是这样:
Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系。因此,如果可能的话,可以自

动让Spring通过检查BeanFactory中的内容,来替我们指定bean的协作者(其他被依赖的bean)。由于

autowire可以针对单个bean进行设置,因此可以让有些bean使用autowire,有些bean不采用。autowire的

方便之处在减少或者消除属性或构造器参数的设置,这样可以给我们的配置文件减减肥

其实,自动装配就是让我们少些几个 <ref ="...">.

 

beans.xml配置文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

  <bean id="userDao" class="com.jimmy.dao.imp.UserOracleDao">
  	<property name="daoId" value="1"></property>
  </bean>
  <bean id="uuserDao2" class="com.jimmy.dao.imp.UserOracleDao">
  	<property name="daoId" value="2"></property>
  </bean>	
  <bean id="userService" class="com.jimmy.service.UserService"  autowire="byName">
     
  </bean>
  

</beans>

Service类如下:

public class UserService {
	private UserDao userDao;

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
	public void add(User u){
		userDao.add(u);
	}
}


 

测试类如下:

public class UserServiceTest {

	@Test
	public void testAdd(){
		ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
		UserService userService=(UserService)ctx.getBean("userService");
		System.out.println(userService.getUserDao());
	}
}



以上例子是通过按名字自动装配,UserService的属性值userDao会去配置文件里面找相同名字的bean,因此找到userDao,Spring会自动装配该bean。若找不到则报错。

若是按照类型匹配,则会根据userDao的类型去配置文件中寻找。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值