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

  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/springmorning/p/10411750.html
Copyright © 2011-2022 走看看