@Autowired和@Resource的区别

@Autowired:它是spring提供的。下图可以看到它所在的包。
它是按byType注入的,默认是要依赖的对象必须存在。boolean required() default true; 如果需要允许依赖对象是null,可以设置:@Autowired(required=false)
如果我们想@Autowired按名称装配,可以结合**@Qualifier**注解一起使用
在这里插入图片描述
在这里插入图片描述
@Resource 是由J2EE提供 在 javax.annotation包中!@Resource默认按byName自动注入,也提供按照byType 注入
当spring的xml配置文件中的bean配置了name或id时,如,那么可以在要注入的属性上加@Resource(name=“user_id”)或者@Resource(name=“user_name”)都可以

扩展:
byType 方式自动注入
使用 byType 方式自动注入,要求:配置文件中被调用者 bean 的 class 属性指定的类,要与代码中调用者 Bean 类的某域属性(对象属性)类型同源。即要么相同,要么有 is-a 关系(子类,或是实现类)。但这样的同源的被调用 bean 只能有一个。多于一个,容器就不知该匹配哪一个
了。
byName 方式自动注入
当配置文件中被调用者 Bean 的 id 值与代码中调用者 Bean 类的属性名相同时,可使用byName 方式,让容器自动将被调用者 Bean 注入给调用者 Bean。容器是通过调用者的 Bean类的属性名与配置文件的被调用者 bean 的 id 进行比较而实现自动注入的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值