@autowired与@resource的区别是,为啥远程调用用@Resource,springboot内项目用@autowired
时间: 2023-09-21 09:09:27 浏览: 106
@Autowired
和@Resource
都是用于依赖注入(Dependency Injection)的注解,用于在Spring中将一个Bean注入到另一个Bean中。它们的区别如下:
来源不同:
@Autowired
是Spring的注解,它通过类型匹配来进行依赖注入。它可以用在字段、构造函数、setter方法以及方法参数上。@Resource
是Java标准的注解(javax.annotation.Resource),它通过名称匹配来进行依赖注入。它可以用在字段、setter方法以及方法参数上。
命名方式不同:
@Autowired
不需要指定名称,它会根据类型自动匹配合适的Bean进行注入。@Resource
需要指定名称,它会根据名称来查找对应的Bean进行注入。
对于为什么远程调用使用@Resource
而Spring Boot内部项目使用@Autowired
,这是由于两个注解的设计初衷和使用场景不同。
@Autowired
是Spring框架提供的注解,它更加灵活,可以根据类型进行依赖注入。在Spring Boot内部项目中,通常将所有的Bean都放在同一个应用上下文中,因此可以直接使用@Autowired
进行依赖注入。@Resource
是Java标准的注解,主要用于按名称进行依赖注入。在远程调用中,往往存在不同的应用上下文,因此可以使用@Resource
通过指定名称来查找远程调用所需的Bean。
需要注意的是,@Autowired
和@Resource
都可以在Spring Boot项目中使用,具体使用哪个注解取决于具体的需求和场景。
相关推荐


















