具有多模块的Spring项目

时间:2014-03-12 12:36:59

标签: spring maven multi-module

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

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

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

  3. 在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方面的最佳实践吗?

1 个答案:

答案 0 :(得分: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重叠。