如何复制Spring的组件扫描

Lar*_*erg 2 spring annotations

我想在基于Spring的Web应用程序中搜索一些注释,比如@Entity.因此,我需要像Spring一样的功能,当服务器启动时它会查找所有带注释的类@Component.在我的情况下,我不创建单例,对我来说收集所有注释的类非常重要@Entity.

是否有可能使用现有的Spring工具?我想在Spring中为@Component注释准确搜索相同的命名空间.

Tom*_*icz 5

当然,看看parse()方法org.springframework.context.annotation.ComponentScanBeanDefinitionParser.Spring遇到<context:component-scan/>XML配置时调用此方法.可能你可以剥掉它以更好地满足你的需求,但它应该作为一个全面的例子.

你应该特别感兴趣的课程是org.springframework.context.annotation.ClassPathBeanDefinitionScanner.来自JavaDoc:

通过可配置的类型过滤器检测候选类.默认过滤器包括使用Spring的@ Component,@ Repository,@ Service或@Controller构造型注释的类.

顺便说一句,如果您需要较少的通用解决方案,也许您的持久性提供程序有一些API来获取所有实体类?