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() {
        }
    
        // ...
    
    }

  • 相关阅读:
    表单提交:button input submit 的区别
    JavaScript中改变this指针的注意事项
    宝塔服务器配置nginx刷新404的问题汇总
    ES6笔记整理
    axios网络请求
    v-model双向绑定
    v-bind动态绑定
    前端模块化
    vue router 路由
    JS高阶函数
  • 原文地址:https://www.cnblogs.com/springmorning/p/10411750.html
Copyright © 2011-2022 走看看