zoukankan      html  css  js  c++  java
  • Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.10.6 给自动检测组件命名

    6.10.6 给自动检测组件命名

    当组件作为扫描过程的一部分自动检测时,其bean名称由该扫描程序已知的BeanNameGenerator策略生成。默认情况下,任何包含名称值的Spring构造型注@ Component@ Repository@ Service@Controller)都将该名称提供给相应的bean定义。

    如果此类注不包含名称值或对于任何其他检测到的组件(例如通过自定义过滤器发现的那些组件),则默认的bean名称生成器将返回小写的非限定类名称。例如,如果以下两个组件被检测到,则名称为myMovieListermovieFinderImpl

    @Service("myMovieLister")
    public class SimpleMovieLister {
        // ...
    }
    @Repository
    public class MovieFinderImpl implements MovieFinder {
        // ...
    }

    如果您不想依赖默认的bean命名策略,则可以提供自定义bean命名策略。首先,实现BeanNameGenerator接口,并确保包含默认的无参数构造函数。然后,在配置扫描程序时提供完全限定的类名:

    @Configuration
    @ComponentScan(basePackages = "org.example", nameGenerator = MyNameGenerator.class)
    public class AppConfig {
        ...
    }
    <beans>
        <context:component-scan base-package="org.example"
            name-generator="org.example.MyNameGenerator" />
    </beans>

    作为一般规则,使用注指定名称,不管在什么时候,其他组件也可以生成对它的明确的引用。另一方面,不管什么时候,容器都会负责连接,自动生成的名称就能够胜任了

  • 相关阅读:
    听说-- 迭代
    听说
    听说---时序图
    闪屏
    WBS
    听说
    Agile Development ----敏捷开发
    软件测试
    需求分析:WBS图
    2048小游戏
  • 原文地址:https://www.cnblogs.com/springmorning/p/10457874.html
Copyright © 2011-2022 走看看