spring boot开发中遇到的注解

在使用bean容器注入时常常会使用

@AutoWire或者@Resource进行bean的注入两者的不同在于

@Autowired
作用:自动装配Bean之间的依赖关系,Spring会根据类型(byType)或者构造器/属性上的注解(如果有的话)进行自动匹配并注入。
默认行为:默认按照类型进行自动装配,如果有多个相同类型的候选者,如果没有指定限定符,那么必须保证只有一个bean类型与目标字段或方法参数类型匹配,否则将抛出异常。
可选性:从Spring 4.3开始,对于非必需的字段和单参数构造函数,默认为可选的。可以通过设置required = true/false明确指定是否必须。

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
}

@Resource
来源:@Resource 是Java EE规范的一部分(JSR-250),Spring也对其提供了支持。
名称解析策略:默认情况下,@Resource是基于名称(byName)进行注入的,即查找与被注解字段或方法名相同的Bean名称进行注入。但如果同时指定了name属性,则按照指定的名称进行注入。
限定符:通过name属性可以更精确地指定需要注入的Bean名称,这对于同一类型的多个Bean实例非常有用。

@Service
public class UserService {
    @Resource(name = "userRepository")
    private UserRepository userRepository;
}

总结:
如果仅关注类型匹配注入,且确保每个类型在容器中只存在一个 Bean,使用 @Autowired 更简洁直观。
当需要根据 Bean 名称进行注入,或者有多个相同类型的 Bean 需要区分时,应选择 @Resource 并指定 name 属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值