Spring中@Autowired注解、@Resource注解的区别


Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource@PostConstruct以及@PreDestroy
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource装配顺序
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

 

@Autowired 与@Resource的区别:

1、 @Autowired与@Resource都可以用来装配bean.都可以写在字段上,或写在setter方法上。
2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
a.@Autowired() @Qualifier("baseDao")
b.private BaseDao baseDao;
3、@Resource(这个注解属于J2EE的),默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
a.@Resource(name="baseDao")
b.private BaseDao baseDao;

转载于:https://www.cnblogs.com/lijing5921/p/7550090.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android中白色怎么表示,通知栏图标在android 5中变成白色

接受的答案不完全正确。当然,它会使通知图标显示颜色,但是这样做有一个很大的缺点-将目标SDK设置为比AndroidLolliop低!如果您按照建议将目标SDK设置为20来解决您的白色图标问题,您的应用程序将不会针对AndroidLolliop&#xff0c…

Merge Sorted Array

这是一道我觉得有点不是很好的简单题 题目: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:     You may assume that nums1 has enough space (size that is greater or equal to m n) to hold additi…

阿里巴巴android图标素材网,阿里巴巴矢量图标库

网站简介:IconFont:阿里巴巴矢量图标库是由阿里巴巴体验团队倾力打造的中国第一个最大且功能最全的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能,是设计师和前端开发的便捷工具。IconFont平台是由阿里巴巴UX部门推出的矢量图标管理…

gkz cloud sql_使用Cloud SQL的Google App Engine全文搜索

gkz cloud sql许多Google AppEngine开发人员一直在等待全文搜索功能,特别是来自网络上最大的搜索引擎Google。 我很高兴看到Google团队正在努力,您可以在Google I / O 2011会议上查看:Bo Majewski和Ged Ellis进行的全文本搜索 。 据我所知&am…

poj1419 Graph Coloring 最大独立集(最大团)

最大独立集&#xff1a; 顶点集V中取 K个顶点&#xff0c;其两两间无连接。 最大团&#xff1a; 顶点集V中取 K个顶点&#xff0c;其两两间有边连接。 最大独立集补图的最大团最大团补图的最大独立集 #include<iostream> #include<cstring> #include<cstdio>…

android短信增加条目,Android仿短信条目右上角的红色小圆球提示气泡

可以重写View的onDraw完成该功能&#xff0c;也可以写布局文件完成该功能。现在使用布局文件完成。暂时先简单写一个TextView右上角的提示小红球&#xff0c;也可以根据需要写一个ImageView右上角的小红球提示。android:layout_width"match_parent"android:layout_he…

AccuREST Stub Runner发布

最近发布时间不错&#xff01; 我在Too Much Coding博客上的博客更多是关于发布&#xff0c;然后是关于任何具体主题;&#xff09; 在作为Brixton RC1的一部分发布Spring Cloud Sleuth之后&#xff0c;我们刚刚发布了AccuREST 1.0.4版本。 我们修复了一些错误&#xff0c;但引…

idea使用码云

每更改项目的内容会弹出框提示你是否需要发送码云更新 如果没选yes后想要更新码云 联合开发 发现回到A同事的项目中&#xff0c;Student.java并没有修改 完成后&#xff0c;发现的Student.java已经更新了&#xff0c;跟B同事的代码也是一样。因为从服务器下载了最新的代码。 …

android webview rem,Android部分webview rem计算误差记录

上周做了一个原生H5小游戏页面&#xff0c;使用rem来布局&#xff0c;然后在三星和华为的部分机型里面出现了rem计算出现误差的情况&#xff0c;截图如下在页面rem计算完成后&#xff0c;用两种方式获取font-size。然后结果不一样&#xff0c;导致某些元素通过rem计算后的值&am…

android usb弹窗权限r,Android USB权限对话框永远不会出现

我写了一个简单的应用程序,通过USB将命令发送到连接到Android 4.0平板电脑的USB打印机.出于某种原因,我无法获得声明接口和打开连接的权限.这是相关的代码&#xff1a;public class TestPrintActivity extends Activity {private UsbManager mUsbManager;private UsbDevice mDe…

mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据

mvvm 耗时加载进度条先前的文章简要介绍了RIA框架ZK&#xff0c;以及其CSS Selector启发的控制器机制如何通过使在控制器类中引用UI组件的任务变得相对灵活来减轻UI更改所带来的一些负担。 然后&#xff0c;我们在上一篇文章中探讨了ZK中的MVVM模式如何允许单个ViewModel提供不…

@Autowired和可选依赖项

Autowired注释使我们的生活更轻松。 如果我们在类的属性上使用它&#xff0c;也可能导致代码量减少。 我们既不需要构造函数也不需要setter方法。 乍一看看起来很棒&#xff0c;但好处很少是没有成本的。 今天&#xff0c;我想让您知道必须支付的费用。 Autowired&#xff08…

¥人民币符号怎么打

有一种快捷键的方法&#xff08;不方便记忆&#xff09; 按住Alt0165 此方法适合任何输入法。转载于:https://www.cnblogs.com/wulibo/p/7575348.html

android 使用javascript,可以在Android中使用JavaScript吗?

可以在Android中使用JavaScript吗&#xff1f;如果是这样&#xff0c;怎么办&#xff1f;请提供一些示例。谢谢。最佳答案我在这里参加聚会很晚&#xff0c;但是我确实有这个需要。 iOS 7现在包含JavaScriptCorenative &#xff0c;并且确实很容易使用(尽管文档有限)。问题是我…

[POJ2151]Check the difficulty of problems(概率DP)

传送门 每个队之间是独立的 f[i][j]表示当前队伍前i个题答对j个的概率 满足条件的概率 全部方案&#xff08;除去答对0&#xff09;的概率 - 不满足条件的概率&#xff08;每个队伍答对1~n-1&#xff09; #include <cstdio> #include <cstring> #define N 101int …

ejb jsf jpa_完整的WebApplication JSF EJB JPA JAAS –第2部分

ejb jsf jpa视图–创建和JSF设置 本教程是第1部分的继续。 让我们创建一个新的Dynamic Web Project 。 如下图所示创建它&#xff1a; 请注意&#xff1a;在某些时候&#xff0c;Eclipse会询问您是否要添加JSF功能&#xff08;自动完成&#xff09;&#xff0c;然后启用它。 …

android ios logo原型,iOS关于logo和LaunchImage处理

1、软件测试的时候&#xff0c;程序员总会被测试的妹纸问到&#xff1a;这个logo怎么是黑底的呀&#xff1f;这个logo明明提供的正方形的&#xff0c;显示出来的怎么是圆角的&#xff1f;安卓都是正方形的呢&#xff1f;直接根据效果图来解释吧。不包含Alpha通道的logo包含Alph…

JavaFX:TouchGesture内存泄漏?

在我的一个项目中&#xff0c;最近几天我在与内存泄漏作斗争&#xff08;是……“耦合”&#xff09;&#xff0c;我得出的结论是可能存在与触摸/滚动手势有关的问题。 在下面的示例中&#xff0c;我有两个按钮。 第一个创建具有一千行的列表视图&#xff0c;第二个将其删除。 …

第2章 状态机思维与状态机变量

12312312转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7590199.html

荣耀v40可以升级华为鸿蒙,网传荣耀V40机型也能升级鸿蒙OS 首批更新机型有望是这5款...

此前华为官方曾透露&#xff0c;所有可以升级到EMUI11系统的华为荣耀手机以后都可以升级更新到华为鸿蒙2.0系统&#xff0c;首批可以升级至EMUI11的手机和平板电脑共有55款。后续&#xff0c;又有传闻称&#xff0c;麒麟710处理器以上机型很可能都能更新EMUI11&#xff0c;也就…