为什么可以使用@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 特定的警告,例如关于字段注入的警告

相关内容

热门资讯

机巧辅助!大咖娱乐挂脚本(辅助... 您好,大咖娱乐挂脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
教材辅助!海米大厅辅助(辅助挂... 教材辅助!海米大厅辅助(辅助挂)好像真的是有辅助技巧(有挂技巧)1、不需要AI权限,帮助你快速的进行...
秘籍辅助!关春天开挂(辅助挂)... 您好,关春天开挂这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家在这...
攻略辅助!威信茶馆透视器(辅助... 攻略辅助!威信茶馆透视器(辅助挂)好像存在有辅助app(存在有挂)1、首先打开威信茶馆透视器辅助器下...
教程书辅助!潮汕木虱有辅助挂吗... 教程书辅助!潮汕木虱有辅助挂吗(辅助挂)确实真的有辅助教程(有挂分析)小薇(辅助器软件下载)致您一封...
教材辅助!广东雀神祈福真的有用... 教材辅助!广东雀神祈福真的有用吗(辅助挂)都是真的有辅助器(发现有挂)1、让任何用户在无需广东雀神祈...
模块辅助!微信小游戏辅助器(辅... 您好,微信小游戏辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩...
妙招辅助!小程序牵手跑得快辅助... 妙招辅助!小程序牵手跑得快辅助器(辅助挂)其实存在有辅助器(有挂方式)1、小程序牵手跑得快辅助器脚本...
讲义辅助!同乡游有辅助软件吗(... 讲义辅助!同乡游有辅助软件吗(辅助挂)原来是真的有辅助挂(有挂技巧)1、游戏颠覆性的策略玩法,独创攻...
妙计辅助!哈局辅助作必弊(辅助... 妙计辅助!哈局辅助作必弊(辅助挂)本来存在有辅助app(有挂技巧)1)哈局辅助作必弊免费钻石:进一步...