我有一个使用
Spring IoC的多模块Maven项目
parent-proj - module1 - module2 - module3 - web-module
我的问题是:
组装applicationContext文件的最佳做法是什么?我应该在web模块中创建一个巨大的applicationContext-web.xml吗?或者我应该在每个子模块中创建applicationContext-module<#> .xml,并将其全部导入到我的applicationContext-web.xml中?
我一直在使用第二个选项.现在看起来有点失控(例如,bean覆盖具有相同ID的bean等).
谢谢.
解决方法
首先,如果module1,module2和module3纯粹是在web模块中被引用和使用的纯Java库(例如包含域模型,DAO,服务类等),我们通常不会在这个纯Java库中操作Spring容器.
其次,您不应该按项目模块拆分Spring容器.根据需求,您可以通过应用层溢出Spring容器,并在Web-module项目中定义多个applicationContext文件(以避免单个巨大的applicationContext.xml).例如,这是我们通常做的:
web-module/src/main/webapp/WEB-INF: applicationContext-dataAccess.xml applicationContext-dataStore.xml applicationContext-security.xml applicationContext-web.xml ... ... web.xml
希望有道理