Maven项目中的每个模块是否都有自己的Spring应用程序上下文?

我正在创建一个应用程序,将项目分为不同的模块,如(域,存储库,服务和Web)以及许多用于邮件发送,文本格式等的通用Maven项目。我也使用Spring。

目前我只有在Web项目中有Spring应用程序上下文文件。 但是,因为我正在创建通用pupose项目的文本格式等封装库(例如freemarker)从实际应用程序我不喜欢,我必须在Web项目中的Spring应用程序上下文文件中指定库依赖配置。

问题在于为每个模块分别创建一个Spring应用程序上下文文件是否正确,然后在我使用它们的项目中导入上下文文件。 这是做这件事的正确方法,还是有更好的方法?

我感兴趣的是如何在使用XML文件时解决此问题,而不是JavaConfig。


为所有模块创建applicationContext.xml配置并将其放入模块,然后从Web模块导入所有模块的所有配置。

web.xml

<!-- Context Configuration locations for Spring XML files -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:/applicationContext-resources.xml
        classpath:/applicationContext-dao.xml
        classpath:/applicationContext-service.xml
        classpath*:/applicationContext.xml
        /WEB-INF/applicationContext*.xml
        /WEB-INF/cxf-servlet.xml
        /WEB-INF/security.xml
    </param-value>
</context-param>

在这个例子中,所有的applicationContext.xml都是从模块中导入的。

这个示例代码从AppFuse应用程序复制,看看如何配置此应用程序。 使用AppFuse构建示例多模块Spring应用程序:

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring-archetype -DarchetypeVersion=3.0.0 -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse

参考文献:

  • 将applicationContext分割为多个文件
  • Appfuse快速入门

  • 我是第二个Boris Spider关于基于注释的配置的评论。

    我对该问题的解决方案首先是在模块(以及所有地方)中使用基于注释的配置。

    第二步是将父项目配置为组件扫描模块的包。

    最后,如果某些东西没有完全由注释处理,那么它很可能需要仔细配置才能在父项内部工作。

    以下是基于注释的配置的更新参考。 大多数情况下可以用一个或两个简单的注释来处理。 查看可用于设置属性值等的@Value

    链接地址: http://www.djcxy.com/p/77045.html

    上一篇: Should each module in a Maven project have its own Spring application context?

    下一篇: Play full HTML5 video and then loop a section of it