@Autowired和@Resource

简介: @Autowired和@Resource

在Spring框架中,@Autowired@Resource都是用于依赖注入的注解,它们可以用来自动装配Spring容器中的bean。尽管它们的目的相同,但它们之间存在一些差异:

@Autowired

  • @Autowired是Spring框架自带的注解。
  • 它可以通过类型来自动装配,如果一个类有多个相同类型的依赖,可以通过@Autowired结合@Qualifier注解来指定具体的bean。
  • @Autowired可以应用于构造器、字段、设置方法和普通方法。
  • 默认情况下,@Autowired是按类型进行装配的,但也可以通过设置其required属性为false来使其成为可选的依赖。

@Resource

  • @Resource是Java自带的注解,由JSR-250规范提供。
  • 它可以通过名称来自动装配,即它会尝试按照名称来查找并注入bean。
  • @Resource可以应用于构造器、字段和设置方法。
  • @Resource默认按照名称进行装配,如果没有指定名称,则会尝试按类型进行装配。
  • @Resource有一个name属性,可以通过它来指定要注入的bean的名称。

使用示例

@Service
public class MyService {
   
    private MyDependency dependency;

    @Autowired
    public MyService(MyDependency dependency) {
   
        this.dependency = dependency;
    }

    @Autowired
    @Qualifier("specificBean")
    public void setDependency(MyDependency dependency) {
   
        this.dependency = dependency;
    }
}

@Component
public class MyComponent {
   
    @Resource(name="specificBean")
    private MyDependency dependency;
}

我个人是比较推荐使用@Resource注解,不仅简单,代码整洁,而且容错率也高,关键能去掉IDEA的警告!

相关文章
|
2月前
|
算法 安全 量子技术
“RSA还能撑多久?”——聊聊量子计算下密码学的危与机
“RSA还能撑多久?”——聊聊量子计算下密码学的危与机
191 0
|
小程序
支付宝扫码跳转小程序并传参
支付宝扫码跳转小程序并传参
1832 1
|
10月前
|
传感器 安全 算法
【C语言】C语言可以做什么?
C语言因其高效、灵活和低级控制能力,被广泛应用于各个领域,从基础设施和科学计算到金融、交通和机器人技术。它在许多关键应用中展示了其不可替代的价值和广泛的适用性。
656 2
|
Java Spring 容器
@Resource 和 @Autowired 介绍 为什么使用 @Autowired 会报错,改成@Resource 就对了
本文介绍了`@Autowired`和`@Resource`两种依赖注入注解的区别及使用场景,并解释了为什么在某些情况下使用`@Autowired`会导致错误,而改成`@Resource`则可以解决问题。
946 0
|
Java Spring 容器
@Resource 和 @Autowired区别是什么?
@Resource 和 @Autowired区别是什么?
201 1
|
11月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
338 2
Postman 的 Basic Auth 如何通过 Feign 实现
Postman 的 Basic Auth 如何通过 Feign 实现
177 8
|
JSON Java 数据格式
@RequestParam与@RequestBody使用对比
@RequestParam与@RequestBody使用对比
187 8
|
存储 NoSQL 关系型数据库
MongoDB基本命令
MongoDB基本命令
217 0