【发布时间】:2013-12-23 03:27:34
【问题描述】:
因此可以使用<context:component-scan ...> 或@ComponentScan("org.rythmengine.spring.web") 来允许spring 扫描特定包下的bean。问题是如何在扫描过程中注入我的逻辑?假设我想利用 spring 的扫描来查找所有实现某个接口的类,或者使用某个注解进行注解。
【问题讨论】:
-
添加
include-filter以指定该注释或接口。见docs.spring.io/spring/docs/current/spring-framework-reference/… -
谢谢。我在哪里可以得到被过滤掉的类集合?
-
你不能... Spring 将使用它们作为组件。你能在你想要的东西上表现得更有表现力吗?因为最初看起来您想要添加自己的自定义注释以被拾取,但显然您想要其他东西。
-
这里是故事。我正在为 Spring 创建一个视图引擎插件,特别是 rythmengine.org。用户可以定义实现特定接口的标记类。我不希望用户在他们的 xml 配置文件中添加一堆设置来告诉我的插件哪些类被定义为标签,而是插件扫描用户的包以获取他们的标签类并自动注册到模板渲染引擎
-
那么不要为此使用组件扫描。您可能想查看
LocalSessionFactoryBean(或其JPA 对应部分)的源代码,了解如何为@Entity类完成类路径扫描和注册,基本上这就是您想要的。
标签: java spring spring-mvc reflection component-scan