@Resource注解的含义

问题描述 投票:0回答:3

我无法理解

@Resource
注释的含义。我查看了在线资源,但他们似乎以难以理解的方式解释了同样的内容。如果可能的话,有人可以简单地解释一下
@Resource
的含义吗?

谢谢!

java annotations
3个回答
55
投票

首先,要理解

@Resource
的要点,您需要了解控制反转(IoC)

控制反转是软件开发中的一个原则,即对象的控制权应该转移到容器或框架中。

依赖注入(DI)是IoC实现的一种模式,其中反转的控制是对象依赖关系的设置。 将对象与其他对象组合(注入)的行为是由容器而不是对象本身完成的。

使用 DI 框架(如

Spring IoC
EJB
)创建 POJO 并配置框架(以这种方式配置的 POJO 称为
Bean
)。
Bean
可能有不同的作用域,例如单例(每个容器 1 个对象实例)、原型(每次注入或显式调用创建对象的新实例)等。

到目前为止,一切都很好。下一步是什么?是时候使用我们的beans了。

@Resource
是有助于从容器中提取 beans 的注释。

有多种查找选项可以提取豆子:

  • 按名称匹配
  • 按类型匹配
  • 预选赛匹配

使用不带任何参数的

@Resource
将触发 Match by Type 查找类型。

有一个使用示例或

@Resource
,使用字段注入和基于Java配置的Spring框架以及按名称匹配

@Configuration
public class ApplicationContext {
 
    // Put the bean into the spring container
    @Bean(name = "userFile")
    public File userFile() {
        File file = new File("user.txt");
        return file;
    }
}

@Service
class UserService {

    // Ask the container to get the bean and 'put' it here (inject)
    @Resource(name = "userFile")
    private File userFile;

}

@Resource
通常用于注入数据源、单例服务、上下文配置等


1
投票

@Resource 注解用于标识在初始化时将注入资源的类、字段或方法。对于基于类的 @Resource,“应用程序在运行时查找资源”。

更多信息可以在这里找到:https://docs.oracle.com/javaee/6/tutorial/doc/bncjk.html


0
投票

是通过名称、类型或限定符将“资源”注入到字段中

© www.soinside.com 2019 - 2024. All rights reserved.