为什么Spring和IDEA都不推荐使用@Autowired注解呢?
下文笔者讲述Spring和IDEA不推荐使用@Autowired注解的简介说明,如下所示
Spring依赖注入注解@Autowired后会出现如下警告 Field injection is not recommended (字段注入是不被推荐的) 但是使用@Resource却不会出现此提示 Spring常见DI方式 构造器注入:使用构造方法的参数注入依赖 Setter注入:调用Setter的方法注入依赖 字段注入:在字段上使用@Autowired/Resource注解
@Autowired与@Resource
@Autowired是Spring定义的, @Resource是JSR-250定义 大致功能相同 @Autowired与@Resource区别: 依赖识别方式:@Autowired默认是byType可以使用@Qualifier指定Name, @Resource默认ByName如果找不到则ByType 适用对象:@Autowired可以对构造器、方法、参数、字段使用, @Resource只能对方法、字段使用 提供方: @Autowired是Spring提供 @Resource是JSR-250提供的
不推荐使用@Autowired注解的缘由
@Autowired是Spring提供 它是特定IoC提供的特定注解 导致应用与框架的强绑定 一旦换用了其他的IoC框架,是不能够支持注入**的。 @Resource是JSR-250提供 是Java标准 使用IoC容器应当去兼容它 这样即使更换容器 也可以正常工作
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。