SSM-Spring-Spring装配Bean-依赖注入三种方式式

SSM-Spring-Spring装配Bean-依赖注入三种方式式

在实际环境中实现IOC容器的方式主要分两种:

  • 依赖查找:是通过资源定位,把对应的资源查找回来
  • 依赖注入:Spring主要使用依赖注入,分3种:
    • 构造器注入
    • setter注入
    • 接口注入

主要使用构造器注入和setter注入,接口注入是从别的地方注入的方式


构造器注入

​ 构造器注入依赖构造方法,而构造方法可以是有参和无参,大部分情况想是通过类的构造器创建对象,Spring采用反射的方式,通过使用构造器方法完成注入。

案例:

//创建一个类Role
public class Role {
    
    

    private Long id;
    private String roleName;
    private String note;
    
    //set and get

    public Role(Long id, String roleName, String note) {
    
    
        this.id = id;
        this.roleName = roleName;
        this.note = note;
    }
}

因为创建的是有参构造器,所以不能和创建无参构造方法那样去创建对象,为了Spring能正确创建对象,如下:

    <bean id="Role" class="spring.pojo.Role">
        <constructor-arg name="id" >
            <value>1</value>
        </constructor-arg>
        <constructor-arg name="roleName" value="总经理"/>
        <constructor-arg name="note" value="公司管理者"/>
    </bean>

constructor-arg元素用于定义类构造方法参数,name是属性名,vlaue是值。还可以通过index属性设置定义参数的位置。


使用setter注入

​ setter注入是Spring中最流行的注入方式,利用Java Bean规范所定义的setter方法来完成注入,灵活且可读性高。消除了使用构造器注入出现多个参数的可能性,他也是通过反射技术实现的,XML代码如下:

    <bean id="Role2" class="spring.pojo.Role">
        <property name="id" value="1"/>
        <property name="note" value="重要人员"/>
        <property name="roleName" value="高级工程师"/>
    </bean>

注意:使用这种方式必须要有无参构造器


接口注入

​ 当资源并非来自于自身系统,就可以采用接口注入的形式来获取它

猜你喜欢

转载自blog.csdn.net/weixin_43958223/article/details/114984604