前言
前文中我们提到Spring配置文件的编写,我们可以通过配置文件来将类和方法放置到Spring容器中,在编写程序时,通过控制反转,把对象的创建交给了Spring,但是代码中不可能出现没有依赖的情况,IOC解耦只是降低他们的依赖关系,并没有消除,业务层仍会调用持久层的方法。常用的依赖注入方式有构造器注入和set注入
一、引用类型注入
1、构造器注入
在使用bean的无参构造创建对象时,默认的scope是singleton,在加载bean时会自动调用无参构造。,而构造器注入则是有参构造
1.构造器方法
首先创建无参和有参构造,使用的是有参构造
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
在xml文件servicebean中添加构造器标签
name中的userDao和ref中的userDao含义不同,前者表示service中的userDao属性,后者代表引用到UserDao接口
<bean id="userService" class="com.stu.zc.servicr.impl.UserServiceImpl" >
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
2、set方法注入
(1)普通方法
在service实现类中,创建Dao对象,以及set方法 在方法中放入UserDao的方法
在xml文件中service对应的 bean中加入property标签,name=userDao ref=userDao,值都UserDao,含义不同,前者代表service实现类中set方