为什么可以使用@Resource,但不推荐使用@Autowired
创始人
2024-11-12 11:06:30
0

DI注入的三种方式
1、属性注入
属性注入应该是我们用的最多的一种,即通过@Autowired注解,该注解默认是按照ByType方式(按类型)注入Bean,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false)。示例代码:

@Service public class UserService {     private static User user;     // 1. Filed Injection 属性注入     @Autowired     private PlayService playService; } 

2、setter 方法注入
setter方式也会用到@Autowired注解,不过是用在成员属性的set方法上

// 2. Setter Injection setter注入 private PlayService playService; @Autowired public void setPlayService(PlayService playService) {     this.playService = playService; } 

3、构造器注入
构造器注入,则是把需要注入的对象,通过构造器来进行初始化

 	private PlayService playService; 		UserService(PlayService playService) {    		 this.playService = playService; } 
 @Component   public interface PlayService {       void play();   }    @Component   @Slf4j   public class Mp3Player implements PlayService {        @Override       public void play() {           log.info("Mp3Player play()");       }   }    @Component   @Slf4j   public class Mp4Player implements PlayService {        @Override       public void play() {           log.info("Mp4Player play()");       }   } 

区别:
1、@Resource是Java的标准注解,定义在javax.annotation.Resource包中,主要用于EJB 组件的依赖注入,但在Spring中也可以用于bean的注入。
2、@Autowired 是 Spring 框架提供的注解,定义在org.springframework.beans.factory.annotation.Autowired 包中,专门用于 Spring 环境下的依赖注入。
3、@Resource 默认按照名称进行注入,如果找不到匹配名称的 bean,则退而求其次按照类型进行注入。可以通过 name 属性指定 bean 名称,或者通过 lookup 属性指定查找方法。
4、@Autowired 默认按照类型进行注入,如果类型匹配的 bean 多于一个,则会抛出异常,除非指定了具体的 bean 名称。可以通过 required 属性来控制是否必须找到匹配的 bean。
5、IDEA推荐@Resource
(1)@Resource 是 Java 标准的一部分,因此可能被视为更通用的解决方案
(2)使用 @Resource 可以避免 Spring 的特定依赖,使得代码看起来与 Spring 解耦。 IDEA 的推荐也可能基于减少 Spring 特定的警告,例如关于字段注入的警告

相关内容

热门资讯

机巧辅助!陕西三代辅助(辅助挂... 机巧辅助!陕西三代辅助(辅助挂)总是确实有辅助神器(真的有挂)1、每一步都需要思考,不同水平的挑战陕...
方针辅助!纳祥游戏科技(辅助挂... 方针辅助!纳祥游戏科技(辅助挂)真是真的有辅助技巧(真的有挂)1、纳祥游戏科技透视辅助软件激活码多个...
诀窍辅助!潮汕汇鱼虾蟹辅助(辅... 诀窍辅助!潮汕汇鱼虾蟹辅助(辅助挂)好像存在有辅助攻略(真的有挂)1、在潮汕汇鱼虾蟹辅助插件功能辅助...
窍门辅助!洞庭茶苑app辅助(... 您好,洞庭茶苑app辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
演示辅助!欢欢辅助软件怎么样(... 演示辅助!欢欢辅助软件怎么样(辅助挂)都是真的是有辅助技巧(有挂教程)1、欢欢辅助软件怎么样脚本辅助...
积累辅助!微信小程序里的微乐可... 积累辅助!微信小程序里的微乐可以开挂吗(辅助挂)总是确实有辅助教程(发现有挂)1、下载好微信小程序里...
课程辅助!功夫川麻辅助(辅助挂... 课程辅助!功夫川麻辅助(辅助挂)好像真的有辅助技巧(有挂秘笈)1、完成功夫川麻辅助有辅助插件,帮助玩...
方针辅助!顺欣茶楼开挂(辅助挂... 方针辅助!顺欣茶楼开挂(辅助挂)果然真的有辅助app(今日头条)1、顺欣茶楼开挂脚本辅助下载、顺欣茶...
步骤辅助!涂山山西辅助(辅助挂... 步骤辅助!涂山山西辅助(辅助挂)真是真的是有辅助插件(有挂总结)涂山山西辅助破解侠是真的助透视。每个...
讲义辅助!欢乐掌心辅助(辅助挂... 讲义辅助!欢乐掌心辅助(辅助挂)竟然确实有辅助神器(有挂细节)1、金币登录送、破产送、升级送、活动送...