zoukankan      html  css  js  c++  java
  • Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.9.7 @Resource

    6.9.7 @Resource

    Spring还支持在字段或bean属性setter方法上使用JSR-250 @Resource注释进行注入。 这是Java EE 56中的常见模式,例如在JSF 1.2管理的beanJAX-WS 2.0端点中。 对于由Spring管理对象支持这种模式。

    @Resource采用name属性,默认情况下,Spring将该值解释为要注入的bean名称。 换句话说,它遵循by-name语义,如本例所示:

    public class SimpleMovieLister {
    
        private MovieFinder movieFinder;
    
        @Resource(name="myMovieFinder")
        public void setMovieFinder(MovieFinder movieFinder) {
            this.movieFinder = movieFinder;
        }
    
    }

    如果未明确指定名称,则默认名称是从字段名称或setter方法派生的。如果是字段,则采用字段名称; setter方法的情况下,它采用bean属性名称。 所以下面的例子将把名为“movieFinder”bean注入其setter方法:

    public class SimpleMovieLister {
    
        private MovieFinder movieFinder;
    
        @Resource
        public void setMovieFinder(MovieFinder movieFinder) {
            this.movieFinder = movieFinder;
        }
    
    }

    借助CommonAnnotationBeanPostProcessor识别的ApplicationContext,该提供的名称解析为bean名称。如果您明确配置SpringSimpleJndiBeanFactory,则可以通过JNDI解析名称。但是,建议您依赖默认行为,仅仅使用SpringJNDI查找功能来持间接级别。

    在没有指定明确的名称且类似于@Autowired@Resource用法的特殊情况下,@ Resource寻找主要类型匹配而不是特定名称的bean,并解析众所周知的可解析依赖项:BeanFactoryApplicationContextResourceLoaderApplicationEventPublisher, 和MessageSource接口。

    因此,在以下示例中,customerPreferenceDao字段首先查找名为customerPreferenceDaobean,然后回到CustomerPreferenceDao类型的主类型匹配。 基于已知的可解析依赖类型ApplicationContext注入context”字段。

    public class MovieRecommender {
    
        @Resource
        private CustomerPreferenceDao customerPreferenceDao;
    
        @Resource
        private ApplicationContext context;
    
        public MovieRecommender() {
        }
    
        // ...
    
    }

  • 相关阅读:
    转载:SSH无法连接error:couldnotloadhostkey:/etc/ssh/ssh_host_dsa_key
    docker修改运行中的容器端口映射
    查看iis进程(w3wp)所对应的程序池名称 / 端口使用情况
    jenkins+sonar+钉钉 发布.net
    windows使用jenkins 搭建 .net 自动发布IIS站点平台
    Redis
    20191209---自定义异常类--转载
    借助pywinauto实现本地文件上传--转载
    python虚拟环境搭建,虚拟环境迁移,三方库安装
    python 在不同层级目录import 模块的方法
  • 原文地址:https://www.cnblogs.com/springmorning/p/10411750.html
Copyright © 2011-2022 走看看