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

标签 java maven web-applications spring-mvc modular

我正在尝试用 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/

相关文章:

java - WebSocket 立即断开连接 - Openshift

java - Parquet 格式的 Mapreduce 错误

silverlight - 在 Web 中重新托管工作流设计器

java - 将 Play 项目部署为服务

java - 我可以创建自己的 header 字段以供我和访问网络应用程序的客户使用吗?

java - 如何默认一直以多线程方式运行maven build

java - 如何对mongodb中FIND命令获取的文档进行排序?

java - pom.xml 无法从外部属性文件读取属性

eclipse - 同一 Maven 存储库上的两个 Eclipse

maven - 在 JShell 中,如何从 Maven 项目导入类路径