spring 在初始化bean的时候,需要注入beans之间的依赖关系。依赖注入(DI)产基本原理是对象之间的依赖关系,它一般只会通过以下几种方式来实现。
构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。DI 主要有两种注入方式。Setter 和构造器注入。
构造器注入
1 <bean id="impl" class="com.shuanlei.service.UserService"> 2 <constructor-arg> 3 <bean class="com.shuanlei.dao.UserDao"></bean> 4 </constructor-arg> 5 </bean>
1 public class UserService { 2 private UserDao userDao; 3 4 public String add(){ 5 userDao.add(); 6 return null; 7 } 8 9 public UserService(UserDao userDao) { 10 super(); 11 this.userDao = userDao; 12 } 13 14 }
Setter 注入
1 <bean id="stu" class="com.shuanlei.dao.StudentDao"></bean> 2 <bean id="student" class="com.shuanlei.service.StudentService"> 3 <property name="studentDao" ref="stu"></property> 4 </bean>
1 public class StudentService { 2 private StudentDao studentDao; 3 public String register(){ 4 studentDao.register(); 5 return null; 6 7 } 8 public StudentDao getStudentDao() { 9 return studentDao; 10 } 11 public void setStudentDao(StudentDao studentDao) { 12 this.studentDao = studentDao; 13 } 14 15 }