spring依赖注入之setter形式注入

spring依赖注入之setter方式注入

Spring注入依赖的Setter的方式注入依赖是经常使用的到得一种方法,也非常的简单,只需给每个需要注入的属性设置Setter方法

 

  构造器注入与Setter注入的比较

     由于大量的构造器参数可能使程序变得笨拙,特别是当某些属性是可选的时候。因此通常情况下,Spring开发团队提倡使用setter注入。而且setter DI在以后的某个时候还可将实例重新配置(或重新注入)

    尽管如此,构造器注入还是得到很多纯化论者(也有很好的理由)的青睐。一次性将所有依赖注入的做法意味着,在未完全初始化的状态下,此对象不会返回给客户代码(或被调用),此外对象也不需要再次被重新配置(或重新注入)。

对于注入类型的选择并没硬性的规定。只要能适合你的应用,无论使用何种类型的DI都可以。对于那些没有源代码的第三方类,或者没有提供setter方法的遗留代码,我们则别无选择--构造器注入将是你唯一的选择

  

Java代码 spring依赖注入之setter形式注入
  1. public class StudentService2 implements IStudentService {   
  2.     private IStudentDao studentDao;   
  3.     private String id;   
  4.  public void setId(String id) {   
  5.   this.id = id;   
  6.  }   
  7.   
  8.   
  9.  public void setStudentDao(IStudentDao studentDao) {   
  10.   this.studentDao = studentDao;   
  11.  }   
  12.     
  13.        
  14.  public void saveStudent() {   
  15.   studentDao.saveStudent();   
  16.   System.out.print(",ID为:"+id);   
  17.  }   
  18.   
  19.   
  20. }    

  spring配置文件

Xml代码 spring依赖注入之setter形式注入
  1. <bean id="studentDao" class="com.wch.dao.impl.StudentDao"></bean>  
  2.   <bean id="studentService2" class="com.wch.service.impl.StudentService2">  
  3.   
  4. <!--  
  5.  
  6.      指定需要注入bean      
  7.  
  8.   -->  
  9.      <property name="studentDao" ref="studentDao"></property>  
  10.   
  11.      
  12.   
  13. <!--  
  14.  
  15.    直接变量(基本类型、Strings类型等。),可以通过value属性经行赋值  
  16.  
  17.   -->  
  18.   
  19.      <property name="id" value="123456789"></property>     
  20. </bean>