spring的依赖注入(Dependency Injection)和控制反转(Inversion of Control )。
依赖注入一般可以通过:set和构造函数
控制反转是通过配置文件来管理对象的创建和对象之间的关系,而不是通过new来操作。
×让spring管理你的对象,必须将被管理的对象定义在配置文件中
×定义setter或构造函数,spring会将对象注入过来
在客户端,我们可以通过这样来取得在配置文件中的bean:
//通过配置文件初始化bean工厂 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); //通过bean工厂得到相应的对象,id UserManager userManager = (UserManager)factory.getBean("userManager");利用set和构造函数来实现依赖注入,两者的不同的实现如下: 在bean文件中:
// 依赖注入,利用set方法
private Bean userbean;
public Bean getBean () {
return userbean;
}
// 依赖注入
public void seBean (Bean bean ) {
this.userbean= bean ;
}
=========================================
//利用构造函数,依赖注入
public Bean(Bean userbean){
this.userbean = userbean;
}
相应的applicaitonContext中的配置如下:
<!-- 在文件中体现依赖关系 -->
<bean id="userManager"
class="com.ustc.spring.manager.UserManager2">
<!-- 利用set注入的配置 -->
<property name="userDao" ref="userDao4MySqlImpl"></property>
<!-- 利用构造函数注入的配置 -->
<constructor-arg ref="userDao4MySqlImpl"></constructor-arg>
</bean>