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

时间:2013-02-18 22:24:17

标签: java maven web-applications spring-mvc modular

我正在尝试用Java设计中型Web应用程序的体系结构,我想就如何实现它提供一些建议。

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

<import resource="classpath*:/module/*-context.xml" />

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

基于注释的示例:

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

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

答案 1 :(得分:1)

fwiw,在完成普通Spring导入的一些经验后,我们开发了一个用于Spring的osgi-less模块​​化的小框架。导入的第一个问题是bean名称冲突,你不能在两个上下文中使用同名的单例,以及许多其他麻烦.. tbc https://github.com/griddynamics/banshun

- 麦克