@Resource与@Autowired注解的区别

本文探讨了Spring框架中@Autowired与@Resource注解的区别与联系。@Autowired默认按类型装配bean且要求依赖对象存在,可通过设置required属性允许null值。@Resource则支持按名称装配,并能减少代码与Spring间的耦合。

最近写了几个demo发现这两个注解可以替换使用,但是还是有细微的区别

1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。

2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
Java代码
@Autowired() @Qualifier("baseDao")    
private BaseDao baseDao;
Spring属于第三方的,J2EE是Java自己的东西。使用@Resource可以减少代码和Spring之间的耦合。
@Resource(name = "manImpl")//前提是有两个实现类,注意是manImpl不是ManImpl,因为使用@Service,容器为我们创建bean时默认类名首字母小写  


链接:https://www.zhihu.com/question/39356740/answer/80926247
来源:知乎
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值