我正在尝试用 Java 设计一个中型 Web 应用程序的架构,我想就如何设计获得一些建议。
该项目由一个基础网站和许多模块组成。例如,一个模块将提供用户注册,另一个模块将提供网络服务,等等......
每当我需要将应用程序交付给新客户时,理想的做法是选择他想要的模块,进行一些主题化(css、图像,也许是 jsp)并开发他可能需要的自定义模块(如果有的话) .
我看过 maven 多模块项目、war overlays,但我发现很难对应用程序进行分区,尤其是在模块配置方面(例如,从模块合并全局 spring 配置)。有人能给我指出这样一个系统的例子吗?提前致谢!
最佳答案
合并 spring 配置很简单。在每个模块中,在它的/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,但它需要部署在正确的服务器上。
关于java - 使用 Spring 和 Maven 的模块化 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946417/