【发布时间】:2014-10-11 14:42:10
【问题描述】:
我有一个带有 Spring 容器的项目。假设这个项目名为my-common-library,并使用命名空间my.common。它扫描此命名空间中的所有组件,如 common-context.xml 中指定的那样,如下所示
<beans ...>
<context:component-scan base-package="my.common"/>
</beans>
除其他外,此扫描会检测带有 @MyComponent 注释的类。
现在我想尽可能充分地重用这个项目。假设我开始了一个新项目my-client,它在命名空间my.client 中使用。 my-client 主要由带有 @MyComponent 注释的组件组成。
在理想情况下,我只需添加依赖项my-common-library,所有@MyComponents 都将被扫描和注册。唯一的问题是原来的my-common-library 不知道新的命名空间。
我知道的一个解决方案是将更新后的 common-context.xml 添加到 my-client,看起来像
<beans ...>
<context:component-scan base-package="my.common,my.client"/>
</beans>
这当然可以,但看起来很脆弱。有没有更优雅的解决方案?
【问题讨论】:
标签: java spring component-scan