【问题标题】:Java web application modularize with springJava Web 应用程序使用 Spring 模块化
【发布时间】:2012-10-12 00:03:04
【问题描述】:

我正在尝试构建这样的项目结构:

Project
|--Web_module.war
    |--Data_module.jar(Spring)
    |--Util_module.jar
    |--other public api...

这意味着,不同的模块应该打包到不同的 jar 中,所以我必须为不同的模块(例如数据模块和 web 模块)有更多的 spring 配置(application-context.xml)。

我的问题,如何组织所有配置文件以将它们正确包含在 web 模块中。

提前致谢。

【问题讨论】:

    标签: spring web-applications modularity


    【解决方案1】:

    为了让您的模块发布自己的配置(以及您的主应用程序以自动检测它们),您可以在主 applicationContext.xml 中,使用带有通配符的模式从类路径中导入其他 context.xml 文件:

    <import resource="classpath*:conf/moduleContext.xml" />
    

    这告诉 spring 在所有匹配 conf/moduleContext.xml 的 jar 中查找和读取文件。 请注意,对此有一点限制:您必须将上下文文件放在至少一个目录中(而不是在类路径的根目录中)。这就是为什么在我的例子中你有 de "conf" 目录。

    【讨论】:

      【解决方案2】:

      计划为您预期的每个 jar 文件创建一个 eclipse 项目。

      根据您的项目功能选择 jars 文件/eclipse 项目,使其尽可能模块化和自包含。

      在每个 eclipse 项目中使用 junit 测试来彻底测试单个项目/模块,使用 spring 单元测试支持

      每个 Eclipse 项目都将包含自己的 spring 配置上下文文件,例如 Util_module 项目可能包含 util-context.xml

      最后有一个 eclipse 动态 web 项目作为一个包装 web 应用程序,它将聚合你所有的“模块”项目

      HTML、JS、JSP 等 UI 工件以及使用 Web 应用程序上下文(如控制器、Servlet 过滤器等)的 Java 代码应包含在 Eclipse Web 项目中

      在eclipse web项目的java构建路径中,但模块“projects”为“required”项目

      在 Eclipse Web 项目的部署程序集中,添加模块“项目”作为依赖项。

      现在,当您构建和部署 Web 应用程序时,所有依赖的模块项目也将编译和部署,但更重要的是,所有项目功能将被划分为单独的模块化项目

      谨慎设置项目之间的依赖关系,以免引入循环依赖

      当需要维护干净和相关的模块时,不要害怕重构项目结构

      【讨论】:

      • 感谢您的回答,我明白您的解释,但我的问题是,我想在我的网络动态项目中有一个application-context.xml,每个模块都有更多module-context.xml我有,但我必须在我的网络动态项目中application-context.xml 中的所有configurations include 吗?
      猜你喜欢
      • 2014-02-17
      • 2013-08-15
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 2014-01-25
      相关资源
      最近更新 更多