代码之家  ›  专栏  ›  技术社区  ›  LM10

@Resource注释的含义

  •  18
  • LM10  · 技术社区  · 6 年前

    我无法理解这个词的意思 @Resource 注释。我看过网上资源,但它们似乎以一种难以理解的方式解释了同样的问题。有人能解释一下这个词的意思吗 @资源 以一种过于简单的方式,如果可能的话?

    谢谢

    2 回复  |  直到 6 年前
        1
  •  39
  •   J-Alex Dorota Przeniosło    3 年前

    首先,要理解 @Resource 你需要了解 控制反转(IoC) .

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

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

    使用DI框架(比如 Spring IoC EJB )您正在创建POJO并配置框架(POJO以称为 Bean ).A 可能有不同的作用域,比如singleton(每个容器一个对象实例)、prototype(每次注入或显式调用创建一个对象的新实例)等等。

    enter image description here

    到目前为止,一切顺利。接下来呢?是时候使用我们的 .

    @资源 是有助于提取的注释 从容器中取出。

    有几个查找选项可以提取bean:

    • 按姓名配对
    • 按类型匹配
    • 资格赛

    使用 @资源 如果没有任何参数,将触发 按类型匹配 查找类型。

    这里有一个用法或用法的例子 @资源 使用基于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;
    
    }
    

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

        2
  •  0
  •   ThisIsntSparta    6 年前

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

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