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>