spring依赖注入之setter形式注入
spring依赖注入之setter方式注入
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>