Bootstrap

Spring依赖注入两种方式

      一、Spring框架简介

        Spring框架是使用基本的JavaBean来完成以前只可能由EJB完成的事情,简单来说,就是要将原来需要程序员手动创建的类交给Spring管理,由Spring创建。在创建完成相应的Bean对象后,单例对象会存储在Bean工厂中,可以通过IOC容器getBean方法获取创建好的Bean对象,而要使用Bean对象,还需要对该对象进行依赖注入。

      二、Setter注入

        Setter注入就是在类中对需要注入的对象创建get和set方法,并在配置文件的Bean对象中用<properties>标签进行依赖注入,如下:

public class Student {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Teacher {
    private String name;
    private Student student;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Dog getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }
}

        之后在配置文件中注入

        

<bean id="d1" class="com.fs.pojo.Student">
     <property name="name" value="威猛先生"/>
 </bean>
<bean id="p1" class="com.fs.pojo.Teacher">
    <property name="name" value="张三"/>
    <property name="student" ref="d1"/>
</bean>

      三、构造方法注入

        与前一种方法类似,只是这种方式并不是通过get、set方法进行注入,而是通过构造方法对Bean对象进行依赖注入,只需在配置文件中通过<constructor-arg>标签进行注入

<bean id="d1" class="com.fs.pojo.Student">
    <constructor-arg name="name" value="威猛先生"/>
</bean>

<bean id="p1" class="com.fs.pojo.Teacher">
    <constructor-arg name="name" value="王五"/>
    <constructor-arg name="student" type="com.fs.pojo.Student" index="1" ref="d1"/>
</bean>

;