我正在开发一个使用Primefaces作为视图的webapp,我将其他项目中的Spring bean注入JSF Managed bean。
我有一个架构问题: 我为我使用的每个组件(业务逻辑,持久性和其他)创建了单独的项目(模块),并且还使用其接口创建单独的项目。 我希望我的webApp仅依赖于业务逻辑的接口,并使用Spring Dependency Injection注入BL的实现。 我想以递归方式实现这一点:业务逻辑仅依赖于其他接口,并使用spring注入实现。
问题是Maven pom文件中没有依赖于实际的实现,当我部署应用程序(在Web逻辑服务器上)时,没有部署实现jar,Spring也没有找到要连接的bean。
有没有办法在不向实际实现添加依赖项的情况下实现解耦? 如果项目没有作为依赖项添加,我可以从其他项目中包含Spring的bean配置文件吗?
我认为这种脱钩都错了吗?
感谢您的想法。
答案 0 :(得分:2)
要加载模块的上下文,您可能会为文件提供命名约定和/或标准位置。有了它,您可以在Web应用程序bean xml
中执行类似的操作<import resource="classpath*:/META-INF/spring/*-context.xml" />
这会从类路径上的-context.xml
目录加载所有以/META-INF/spring
结尾的文件(包括jar文件)。