【问题标题】:Spring project with multimodule带有多模块的 Spring 项目
【发布时间】:2014-03-12 12:36:58
【问题描述】:

我希望创建一个 Spring Web 应用程序,并使用 Maven 作为构建自动化工具。 我更喜欢使用多模块应用程序。模块的原因是:

  1. 我的应用程序和用户模块中有一个管理模块。编码 用户模块的更改不需要测试管理模块。

  2. 不同的开发团队在用户和管理模块中工作

在 POM 模块方面,我倾向于如下所示

project/pom.xml             #pom with <modules> element
project/parent/pom.xml      #Parent pom
project/moduleX/pom.xml     #module 'X'
project/moduleY/pom.xml     #module 'Y'

问题是,当我采用模块方法时,我需要在 Spring 方面遵循任何最佳实践吗?

【问题讨论】:

    标签: spring maven multi-module


    【解决方案1】:

    使用每个模块applicationContex

    您可能需要每个模块的应用程序上下文:

    ...
    <servlet>
        <servlet-name>main-project</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>WEB-INF/config/main-project-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>main-project</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> 
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/config/applicationContext-moduleX.xml
            /WEB-INF/config/applicationContext-moduleY.xml
        </param-value>
    </context-param>
    ...
    

    然后,您需要一种方法将各种应用程序上下文放入同一目录,/WEB-INF/config/,例如通过 Maven Assembly Plugin 或通过 Maven War Plugin 覆盖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-29
      • 2017-05-31
      • 2016-06-11
      • 1970-01-01
      • 2017-09-20
      • 2017-07-06
      • 2019-08-26
      • 2022-01-24
      相关资源
      最近更新 更多