| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> spring中关于@AutoWired注解&@Resource注解的区别 -> 正文阅读 |
|
[Java知识库]spring中关于@AutoWired注解&@Resource注解的区别 |
@AutoWired和@Resource注解的区别参考网址1:https://blog.csdn.net/weixin_40423597/article/details/80643990 参考网址2:https://www.zhihu.com/question/39356740 两者的基本认识1、@Autowired注解是Spring自己定义的注解 (Spring团队) 2、Spring框架还去实现了JSR-250(sun/oracle)规范定义的注解@Resource、@PostConstruct以及@PreDestroy。 在某种情况下:Spring实现的@Resource的作用相当于@Autowired 两者的区别1、只不过@Autowired按byType自动注入、而@Resource默认按 byName自动注入罢了 @Resource1、@Resource有两个属性是比较重要的,分是name和type, 2、Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,如下
3、而使用type属性时则使用byType自动注入策略。
4、如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
5、如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
总结: 1:默认情况 @Resource是根据byname匹配,如果一个接口在开发只有一个实现类,会自动把唯一的实现赋值给接口进行是实例化。这个时候这两者是等价的。 @Autowired1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 2、@Autowired:默认按类型装配(这个注解是属业spring的)
3、默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,
总结: 1: @Autowired默认是根据bytype来匹配,如果一个接口在开发只有一个实现类,会自动把唯一的实现赋值给接口进行是实例化。这个时候这两者是等价的。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:41:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |