spring ioc注入的三种方式是什么?详解

你知道Spring常用的三种注入方式是什么吗?有很多的人对这个方面都不大清楚,那么下面就一起来看看这三种常用的方式吧。

三种方式:

一个是构造器注入,第二个是setter注入,第三个是接口注入,下面的话就详细的给大家对这三种方式进行一下讲解。

首先要讲到的就是构造器注入。

构造器注入的话主要是依赖构造方法去实现的。

构造方法可以是无参也可以是有参,一般的话都是通过类的构造方法来创建类对象,给他赋值。

同样的Spring也能够采用反射的方式,依赖构造方法来完成注入(赋值),这也就是构造器注入的原理。

下面一起来详细的看一下代码实现:

/**
 *
 *  构造器注入  
 *
 */
package com.xiaojiang.Spring;
public class Role
{
    private int id;
    private String roleName;
    private String note;
    public Role()
    {}
    public Role(int id, String roleName, String note)
        {
            <br>          super();
        this.id = id;
        this.roleName = roleName;
        this.note = note;
    }<br><br>       //setter,getter方法省略
 
}

applicationContext.xml文件:

<!--构造器配置-->
<bean id="Role" class="com.xiaojiang.Spring.Role">
    <constructor-arg value="1" type="int"></constructor-arg>
    <constructor-arg value="小江" type="java.lang.String"></constructor-arg>
    <constructor-arg value="有点丑" type="java.lang.String"></constructor-arg>
</bean>

constructor-arg元素用来定义类构造方法的参数,在这当中,type用来定义参数的类型,也能够使用index来定义参数的位置。

这里的value用来设置值。

上面的代码就是通过一个Spring去装配一个Bean。

再来讲一下setter注入。

setter注入是当前Spring最主流的注入方式。

能够利用Java Bean规范所定义set/get方法来完成注入。

可读性灵活性高,它可以不需要使用构造器注入的时候出现的多个参数,他能够将构造方法声明成无参构造,再使用setter注入设置相对应的值。

实际上的话也就是通过java反射技术来实现。

类里面的代码set和get方法这里就省略了,直接上xml代码。

<!--配置setter注入-->
<bean id="Role" class="com.xiaojiang.Spring.Role">
    <property name="id" value="1">
        <property>
            <property name="roleName" value="小江">
                <property>
                    <property name="note" value="测试">
                        <property>
                        </bean>

上面的方式就是Spring最主要的方式。

最后来讲一下接口注入。

这里的话就简单的介绍一下。

其实,接口注入在很多容器当中都得到了应用,但是因为灵活性、易用性上面比不上其他两种注入模式,所以的话不是很被人看好。

关于spring ioc注入的方式就给你介绍到这里啦!希望上面的内容整理能够对你的java学习之路有所帮助哦。

更多的java常见问题及解决方法,请继续的关注本站来进行了解吧。

推荐阅读:

spring ioc容器初始化过程是怎样的?详解

spring ioc实现原理详解

spring ioc容器是什么?有什么作用?