gpt4 book ai didi

java - Maven 项目中的每个模块都应该有自己的 Spring 应用程序上下文吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:18 30 4
gpt4 key购买 nike

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

目前我只在 Web 项目中有 Spring 应用程序上下文文件。但是,由于我正在为文本格式等创建一般目的项目,这些项目封装了来自实际应用程序的库(例如 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

引用资料:

关于java - Maven 项目中的每个模块都应该有自己的 Spring 应用程序上下文吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220812/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com