范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

从Resource到Autowired依赖注入中的两大战将,该选择哪一个

  Spring Framework是一款广泛应用于Java开发的轻量级框架。Spring Framework提供了很多核心功能,如依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming),这些功能大大简化了应用程序的开发和维护。在Spring Framework中,@Resource和@Autowired是两个重要的注解,它们都可以用来进行依赖注入,但在使用时却存在一些差异。那么,既生@Resource,何生@Autowired?这是本文要探讨的问题。
  一、@Resource和@Autowired的区别
  @Resource和@Autowired都是Spring Framework中用来进行依赖注入的注解,但它们在使用时有一些不同点。名称匹配规则不同
  @Autowired 先根据接口的类型注入 , 如果对应的类找不到 , 会扫描容器中Bean的名字进行注入 :@Service public class UserServiceImpl implements UserService {     @Autowired     private UserDao userDao; }
  在上面的代码中,@Autowired会寻找名为"userDao"的bean并将其注入到userDao字段中。如果有多个名为"userDao"的bean,则会按照类型进行匹配。
  而@Resource则默认按照名称进行注入,如果名称匹配多个bean,则抛出异常。例如:@Service public class UserServiceImpl implements UserService {     @Resource     private UserDao userDao; }
  在上面的代码中,@Resource会寻找名为"userDao"的bean并将其注入到userDao字段中。如果有多个名为"userDao"的bean,则会抛出异常。
  如果要使用@Resource进行按类型匹配,则需要设置其name属性。例如:@Service public class UserServiceImpl implements UserService {     @Resource(name="userDaoImpl")     private UserDao userDao; }
  在上面的代码中,@Resource会寻找类型为UserDao的bean并将其注入到userDao字段中。如果有多个类型为UserDao的bean,则需要通过name属性来指定要注入的bean。支持的注入方式不同
  @Autowired支持按照类型、名称、构造函数进行注入。例如:@Service public class UserServiceImpl implements UserService {     @Autowired     public UserServiceImpl(UserDao userDao) {         this.userDao = userDao;     } }
  在上面的代码中,@Autowired会将UserDao类型的bean注入到构造函数中。
  而@Resource只支持按照名称进行注入。例如:@Service public class UserServiceImpl implements UserService {     @Resource(name="userDaoImpl")     private UserDao userDao; }
  在上面的代码中,@Resource会将名为"userDaoImpl"的bean注入到userDao字段中。@Autowired可以为null,@Resource必须存在
  @Autowired可以标注在字段或者方法上,如果没有匹配的bean,则该字段或方法的值为null。例如:@Service public class UserServiceImpl implements UserService {     @Autowired(required=false)     private UserDao userDao; }
  在上面的代码中,如果没有名为"userDao"的bean,则userDao的值为null。
  而@Resource必须存在匹配的bean,否则会抛出异常。例如:@Service public class UserServiceImpl implements UserService {     @Resource     private UserDao userDao; }
  在上面的代码中,如果没有名为"userDao"的bean,则会抛出异常。二、@Resource和@Autowired的使用场景
  @Resource和@Autowired都可以用来进行依赖注入,但在使用时应根据实际情况选择。
  @Autowired的使用场景
  @Autowired适用于按照类型注入的场景,例如:@Service public class UserServiceImpl implements UserService {     @Autowired     private UserDao userDao; }
  在上面的代码中,@Autowired会将类型为UserDao的bean注入到userDao字段中,这种方式比较简洁。
  另外,@Autowired还适用于按照名称注入的场景,例如:@Service public class UserServiceImpl implements UserService {     @Autowired     @Qualifier("userDaoImpl")     private UserDao userDao; }
  在上面的代码中,@Autowired会将名为"userDaoImpl"的bean注入到userDao字段中,@Qualifier用来指定要注入的bean。@Resource的使用场景
  @Resource适用于按照名称注入的场景,例如:kotlinCopy code@Service public class UserServiceImpl implements UserService {     @Resource(name="userDaoImpl")     private UserDao userDao; }
  在上面的代码中,@Resource会将名为"userDaoImpl"的bean注入到userDao字段中。
  如果需要按照类型注入,则需要设置其name属性,例如:@Service public class UserServiceImpl implements UserService {     @Resource(name="userDaoImpl")     private UserDao userDao; }
  在上面的代码中,@Resource会将类型为UserDao的bean注入到userDao字段中。
  四、使用建议如果项目只使用了Spring Framework,建议使用@Autowired注解。如果项目同时使用了Java EE和Spring Framework,建议使用@Resource注解。如果需要按照名称进行注入,则建议使用@Resource注解。如果需要按照类型进行注入,则建议使用@Autowired注解。在使用@Autowired注解时,建议搭配使用@Qualifier注解,来指定需要注入的bean的名称。五、结论
  综上所述,@Autowired和@Resource都是Spring Framework中用来进行依赖注入的注解,它们的作用类似,但是它们之间还是有一些区别的。在实际开发中,应根据实际情况选择使用哪种注解,以达到最佳的效果。

48岁贝嫂穿一块白布和黑人拥抱,16年前穿辣妹装参加世界杯真嫩2022年12月,48岁的贝嫂维多利亚贝克汉姆出席晚宴,她的状态仍然年轻如28岁的美女,怪不得她能让贝克汉姆宠爱她23年。这次维多利亚所选择的服装,是一条很有设计感的白裙子,裙子上广东三地文旅项目入选2022中国体育旅游精品项目!均来自粤东西北近日,国家体育总局体育文化发展中心公布了2022中国体育旅游精品项目入选名单,广东共有三个地市的文旅项目成功入选,均来自粤东粤西粤北地区,分别是茂名森林公园(景区)梅州五华县球王故能打动人心的朋友圈文案句子闲看人间事,独饮候归人我一直都是一个人的,风大了慢慢走,雨来了撑伞走,打雷了捂着耳朵走。你像一座孤傲的岛,有自己的城堡,我是上不了岸的潮,只能将你围绕。能爱的时候,就爱吧,能聚的时候,就聚吧,能伴的时候NBA凯尔特人VS太阳,东西部首脑之战鹿死谁手将进行凯尔特人VS太阳的比赛,先来了解西支球队的基本面凯尔特人这边,本赛季至今,凯尔特人的战绩为20胜5负,球队排在东部第1的位置。本场比赛正是首脑之间的战斗。值得一提的是凯尔特人十年不涨价的东西,曝出的令人万万没想到!结果让人哭笑不得网友打车,师傅在车上写着,只要能说出一个十年都没涨价的东西,本次乘车费用全免!她说了很多,都不对。于是,网友们纷纷坐不住了!网友说,可乐雪碧冰红茶还是三元一瓶。打火机十几年还是一元心语寒冬生暖意,微光抚人心,遇见更好的自己心语心情Dec7(1)最好的状态就是最好的风水别让低情绪坏了自己的风水愿所有美好之人得偿所愿,遇见更好的自己(2)寒冬生暖意,微光抚人心寒冷的意义应该就是让我们发现那些温暖的东西吧自己真心喜欢的东西,无需他人来认同01hr择偶要量力而行没钱就不要玩高配一定要门当户对无论是经济还是长相02hr朋友总是说我高冷说我不回他的消息其实我不是高冷而是手冷03hr自己真心喜欢的东西无需他人认可别人喜欢的父母兄弟子女,从血缘上来讲,谁是我们最亲的人?前两天跟孩子聊天的时候,他用稚嫩的声音询问了我一个成熟且有深度的问题妈妈,是你跟我亲,还是弟弟跟我亲呢?我愣了许久,认真思索后才回答孩子从血缘上来说,我们都是你的亲人。以后你还会组梦幻西游个性宠缔造者,打造两只罕见海毛虫,资质为全服之最在梦幻西游里面能够称得上是个性宠的肯定不简单,不是技能另类独特就是资质超群。随着召唤兽新造型的不断放开,越来越多的个性宠被打造出来,也出现了不少职业打造个性宠的玩家。比如王谢就是其曙方医药董事长严知愚罕见病新药可享7年市场独占期走出了很好的一步每经记者许立波每经编辑张海妮近年来,在国内医药产业从跟随式创新转向原研创新的过程中,传统的Licensein(许可引进)等商业模式很难再勾起投资人的兴趣,难度极高风险极大的Firs又到了这几条网红路最美的时候,这种罕见树种你认识吗?巨鹿路,片片法国梧桐落叶飘落在老洋房的宅前屋后慈云街,有人捡起金黄的银杏叶,与深秋来个合影田林路,罕见的白蜡行道树吸引了好奇的目光随着又一波冷空气即将来临,申城各条落叶景观道将真正
唐山再现打人事件?警方发布通报7月23日,针对网传唐山又现打人事件,唐山市遵化市公安局通过官方微博发布警情通报2022年7月22日21时30分许,遵化市公安局指挥中心接报警称我市东方广场北站附近有人打架。接警后朱一龙的人格魅力有他珠玉在前,方知习以为常的也是不及格的电影人生大事莫三妹的扮演者即青年演员朱一龙的人格魅力有他珠玉在前,我才发现,娱乐圈里许多习以为常的言行其实是不及格的。比如饭圈集资以前我觉得粉丝为爱发电没问题,自己的钱爱给谁花就给篮筐高度十余米他投进了他用竹竿挂桶房顶放铁锅自制篮筐院子田地小桥都可以是他的篮球场2米3米7米9。5米随着他练球时间越来越长投篮的高度也逐渐升高如今,他最高可投进十余米高的篮筐!他就是被网友称作臂力惊人学硕和专硕的差距明显,上岸后才发现,怪不得有些人研二就后悔了据教育部统计,2022年高校毕业生人数达到了1076万人,比去年增长了167万人。随着毕业生人数的日益增加,大学生的就业压力更是非常大,很多大学生在毕业后都找不到合适的工作。在激烈中美军力差距有多大?中国军事专家坦言20年内很难超越近年来,中国各方面都取得了比较大的发展,无论是经济领域还是军事领域,这些进步是毋庸置疑的。然而在各方面发展良好的情况下,有人就觉得中国军力和美军有得一拼,两者已经不分伯仲。事实上,神回复我家在两栋房子中间,不用建墙行不行?被神评笑死了看来你们的故事刚开始了。结果你的前途就已经毁掉了。我只能佩服你比较厉害的了。所以说你还是不适合去健身房里健身的。那个难道不是大熊猫吗?怎么看着很像呢?看来现实就是现实,幻想就是幻想3家银行取款出现困难,储户的血汗钱该怎么办?央行的回应来了自从移动支付兴起,大家对于纸币的需求愈加减少,出门在外基本上都是靠着一部手机进行日常消费。很多人甚至出现了,几百元现金一年到头,还有结余的现象。在这样的情况下,消费习惯的改变导致很206219!美战略石油流入中国,拜登被指控通中,民主党力保美国国内油价高企,拜登总统却被指把美国战略储备石油,卖给了一家中国公司,因此被舆论攻击为叛国通中,这到底是怎么回事儿呢?事情其实还得从俄乌战争开始说起,自二月份俄罗斯开始特别军事行阴道炎,怎么办?洗洗更健康?No,no,nofuyanjie,洗洗更健康这句广告词直击广大女性内心,导致很多人为了预防阴道炎,在没有不适的情况下,反复地进行阴道冲洗,引起阴道菌群失调,导致阴道炎。妇科门诊中最常见的主诉阴道痒李连杰谈离婚我从小到大我的定义是法律而不是道德李连杰我从小到大我的定义不是道德,我的定义是法律。有很多人在微博上说,你说的满口仁义道德,你还离婚,你还抛妻弃子?那我说ok,在我来讲,法律是不是可以结婚?法律是不是可以离婚?如果假博士陈春花混得风生水起,真教授许晨阳黯然离开,北大怎么回事北京大学近日删除了陈春花教授的教育背景,爱尔兰欧洲大学工商管理博士。这是北大又一次陷入假学历的漩涡中。陈春花教授何许人也?她是在北大的知名教授,博士生导师,北京大学王宽诚讲席教授,