spring 依赖注入中的@Required与@Autowired

本文介绍了Spring框架中@Autowired和@Required注解的区别及其应用场景。@Autowired用于自动装配bean,支持构造器、方法和属性注入,而@Required则适用于setter方法注入,强制要求bean必须被手动配置。最佳实践中,构造方法注入适用于核心依赖,setter注入适用于可选依赖,属性注入并不推荐。选择合适的注入方式能提高代码的可读性和维护性。
摘要由CSDN通过智能技术生成

1.各自适用的情况

  1. 1@Required 用于setter方法的注入;

  1.2 @Autowired可以用于构造方法、方法、属性注入。

  构造方法注入:

@Autowired  // 此处可以省去Autowired不写,并不影响注入
public FaultController(FaultService faultService) {
    this.faultService  = faultService;
}

  方法/setter方法注入:

@Autowired  
public void init(FaultService faultService) {
    this.faultService  = faultService;
}
// 或者
@Required 
public void setFaultService(FaultService faultService) {
    this.faultService  = faultService;
}

  属性注入

@Autowired  
private FaultService faultService;

2.最佳实践(具体问题具体分析)

    并没有哪一种注入方式是最好的,根据实际情况选择合适的注入方式就是最好的。

  具体来说:

    a. 构造方法注入适合那些必须要依赖的对象的注入。

    b. setter方法注入适合那些可选择性的依赖对象的注入,即可人为选择要不要注入。 

    c.属性注入是一般不推荐的注入方式,虽然它写起来很是方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值