Spring和Maven的模块化Web应用程序

use*_*887 10 java web-applications spring-mvc modular maven

我正在尝试用Java设计中型Web应用程序的体系结构,我想得到一些关于如何做的建议.

该项目包括基础网站和许多模块.例如,一个模块将提供用户注册,另一个模块将提供Web服务,等等......

每当我需要将应用程序交付给新客户时,最理想的方法是获取他想要的模块,做一些主题(css,图像,也许是jsp)并开发他可能需要的自定义模块(如果有的话).

我已经看过maven多模块项目,战争覆盖,但我发现很难对应用程序进行分区,特别是在模块的配置方面(例如,从模块中合并全局弹簧配置).有人能指出我这样一个系统的例子吗?提前致谢!

Mat*_*att 6

合并弹簧配置很容易.在每个模块中,在其/ WEB-INF/classes目录中打包一个spring上下文文件.覆盖时,依赖项中WEB-INF类中的所有类和资源都将放入应用程序的WEB-INF/classes中.(ps,如果您打包为.jar,这也有效,但是如果你这样做,你将无法覆盖.jsp文件)

然后它只是导入它们的问题.最好通过使用设置模式来查找文件.这是一个例子:

<import resource="classpath*:/module/*-context.xml" />
Run Code Online (Sandbox Code Playgroud)

这将导入与此模式匹配的所有类路径资源.

基于注释的示例:

@Configuration
@ImportResource(value={"classpath*:/module/*-context.xml"})
public class MyConfiguration { ... }
Run Code Online (Sandbox Code Playgroud)

如果您需要在模块中进行任何web.xml自定义,那么web.xml配置将比您遇到更多麻烦.当然,您可以使用servlet 3.0,但它需要部署正确的服务器.