我无法理解@Resource注释的含义。我查看了在线资源,但它们似乎以难以理解的方式解释了相同的内容。@Resource如果可能的话,有人可以以简单的方式解释 的含义吗?
谢谢 !
J-A*_*lex 26
首先,要了解这一点,@Resource您需要了解控制反转 (IoC)。
控制反转是软件开发中的一个原则,即对象的控制应转移到容器或框架。
依赖注入(DI)是 IoC 实现的一种模式,其中被反转的控制是对象依赖关系的设置。将对象与其他对象组合(注入)的行为是由容器完成的,而不是由对象本身完成的。
使用 DI 框架(如Spring IoC或EJB),您正在创建 POJO 并配置框架(以这种方式配置的 POJO 称为 a Bean)。ABean可能有不同的作用域,如单例(每个容器 1 个对象实例)、原型(每次注入或显式调用创建对象的新实例)等。
到现在为止还挺好。下一步是什么?是时候使用我们的beans 了。
@Resource是有助于从容器中提取bean的注释。
有几个查找选项可以提取 bean:
@Resource不带任何参数使用将触发Match by Type查找类型。
有一个使用或@Resource使用字段注入和 Spring 框架的示例,其中包含基于 Java 的配置和按名称匹配:
@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;
}
Run Code Online (Sandbox Code Playgroud)
@Resource 通常用于注入数据源、单例服务、上下文配置等。