Spring注入依赖的Setter的方式注入依赖是经常使用的到得一种方法,也非常的简单,只需给每个需要注入的属性设置Setter方法
构造器注入与Setter注入的比较
由于大量的构造器参数可能使程序变得笨拙,特别是当某些属性是可选的时候。因此通常情况下,Spring开发团队提倡使用setter注入。而且setter DI在以后的某个时候还可将实例重新配置(或重新注入)
尽管如此,构造器注入还是得到很多纯化论者(也有很好的理由)的青睐。一次性将所有依赖注入的做法意味着,在未完全初始化的状态下,此对象不会返回给客户代码(或被调用),此外对象也不需要再次被重新配置(或重新注入)。
对于注入类型的选择并没硬性的规定。只要能适合你的应用,无论使用何种类型的DI都可以。对于那些没有源代码的第三方类,或者没有提供setter方法的遗留代码,我们则别无选择--构造器注入将是你唯一的选择
public class StudentService2 implements IStudentService {
private IStudentDao studentDao;
private String id;
public void setId(String id) {
this.id = id;
}
public void setStudentDao(IStudentDao studentDao) {
this.studentDao = studentDao;
}
public void saveStudent() {
studentDao.saveStudent();
System.out.print(",ID为:"+id);
}
}
spring配置文件
<bean id="studentDao" class="com.wch.dao.impl.StudentDao"></bean> <bean id="studentService2" class="com.wch.service.impl.StudentService2"> <!-- 指定需要注入bean --> <property name="studentDao" ref="studentDao"></property> <!-- 直接变量(基本类型、Strings类型等。),可以通过value属性经行赋值 --> <property name="id" value="123456789"></property> </bean>