Spring自动装配@AutoWired

哪些地方可以使用@AutoWired

Spring @AutoWired注解可以用在类的任何方法上:

  1. 构造器
  2. Setter方法
  3. 其他方法。

不管是构造器、Setter方法还是其他方法,Spring都会尝试满足方法参数上所声明的依赖。假如有且只有一个bean匹配依赖需求的话,那么这个bean将会被装配进来。

 

异常情况

  • 无匹配bean

如果没有匹配的bean,那么在应用上下文创建的时候,Spring会抛出一个异常。为了避免异常出现,可以将@Autowired的required属性设置为false:

@Autowired(required=false)
public CDPlayer(CompactDisc cd) {
    this.cd = cd;
}

将required属性设置为false时,Spring会尝试执行自动装配,但是如果没有匹配的bean的话,Spring将会让这个bean处于未装配的状态。但是,把required设置为false时你需要谨慎对待。如果在你的代码中没有进行null检查的话,这个处于未装配的属性有可能会出现NullPointerException。

  • 多个匹配

如果多个bean都能满足依赖关系的话,Spring将会抛出一个异常,表明没有明确制定要选哪个bean进行自动装配。所以此时需要消除歧义性。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值