10

我正在尝试用 Java 设计一个中型 Web 应用程序的体系结构,我想就如何做到这一点获得一些建议。

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

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

我查看了 maven 多模块项目、战争覆盖,但我发现很难对应用程序进行分区,尤其是在模块配置方面(例如,从模块中合并全局 spring 配置)。有人可以指出这样一个系统的例子吗?提前致谢!

4

2 回答 2

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,但它需要正确的服务器进行部署。

于 2013-02-19T01:55:39.230 回答
1

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

——迈克

于 2013-08-30T21:19:13.347 回答