Spring Ioc的类型

本文介绍了Spring框架中的三种依赖注入方式:构造函数注入、属性注入和接口注入,并对比了它们之间的区别及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从注入方法上看,主要可以划分为三种类型:构造函数注入,属性注入和接口注入

Spring支持构造方法和属性注入,下面我们来介绍这三种注入方式的区别。

1.构造函数注入

在构造函数中,我们通过调用类的构造函数,将接口实现类通过构造函数变量出入,如下代码

package Ioc;

/**
 * @Author: hegx
 * @Description:
 * @Date: 9:43 2017/7/12
 */
public class Geli {

    public String responseAsk(String response)
    {
        return response;
    }

}

package Ioc;

/**
 * @Author: hegx
 * @Description:
 * @Date: 9:42 2017/7/12
 */
public class MoAttack {

    private Geli geli;

    //注入Geli的具体实现
    public MoAttack(Geli geli) {
        this.geli = geli;
    }

    public void getCityGateAsk()
    {
        geli.responseAsk("墨者隔离");

    }

}


2.从属性进行注入

package Ioc;

/**
 * @Author: hegx
 * @Description:
 * @Date: 9:42 2017/7/12
 */
public class MoAttack {

    private Geli geli;
    
    //属性注入
    public void setGeli(Geli geli) {
        this.geli = geli;
    }

    public void getCityGateAsk()
    {
        geli.responseAsk("墨者隔离");

    }

}

3.接口注入

package Ioc;

/**
 * @Author: hegx
 * @Description:
 * @Date: 11:25 2017/7/12
 */
public interface ActorArrangable {

    public void injectGeli(Geli geli);

}


package Ioc;

/**
 * @Author: hegx
 * @Description:
 * @Date: 11:26 2017/7/12
 */
public class MoAttack2 implements ActorArrangable {

    private Geli geli;

    @Override
    public void injectGeli(Geli geli) {
        this.geli =geli;
    }

    private void cityGateAsk()
    {
        geli.responseAsk("墨者隔离");
    }

}

由于接口注入需要额外的声明一个接口,增加类的数目,而且他的效果和属性并没有本质上面的区别,因此我们不提倡采用这种注入方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值