【问题标题】:Spring 3 in jar configuration (auto configuration)Spring 3 in jar 配置(自动配置)
【发布时间】:2011-11-29 12:18:30
【问题描述】:

我正在寻找有关 Spring jar 配置的某种“最佳实践”信息。我有一个网络项目(战争),我需要连接一些 jar 库 - 我的 jar 包含附加功能。这些 jar 包含 Spring 服务。但是当我连接 jar 时,服务类不起作用,因为 Spring 不知道这一点。所以我需要通过我的 jar 中的“包自动扫描”配置来告诉 Spring。

最终的解决方案必须是war项目(主要功能)和一些包含其他功能的附加jar。当我将 jar 添加到战争项目中时,我不想更改 applicationContext.xml 中的配置(在战争中)。我希望对战争项目的依赖最小。我在想,如果我将 applicationContext.xml 放到 jar 中的 META-INF 文件夹中,它将由 Spring 自动加载,但事实并非如此。

你知道我该如何解决这个问题吗?可能是某种“启动后动态配置”:-)。谢谢

【问题讨论】:

  • 我迷失在罐子和战争之间!
  • 您是在询问第三方 jar 依赖项,还是让您的 applicationContext.xml 正确完成?
  • 我在问如何正确地将 applicationContext.xml 添加到 JAR 库中...因为这个 JAR 将成为 WAR Web 应用程序的一部分。

标签: spring configuration jar applicationcontext


【解决方案1】:

如果您尝试将带注释的 bean 从 jar 加载到您的 war 的 Spring 上下文中,您可以在 war 的上下文 xml 文件中设置组件扫描以扫描 jar 中的包。

如果你试图从 jar 中加载定义在 XML 文件中的 bean,你可以在你的 war 的 Spring 上下文 xml 文件中使用类似的东西来包含它们:

<import resource="classpath:path/to/config/in/jar/beans-from-jar.xml"/>

您不应该以这种方式让您的 jar 了解有关您的战争的任何信息。您只需扫描带注释的 bean 和/或从 jar 导入配置。

【讨论】:

  • 我认为导入定义是必要的:-(我在想,必须通过一些解决方案而不改变战争中的配置,但可能不是。但谢谢。
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2019-05-03
  • 2018-08-13
  • 2017-01-19
  • 2018-09-09
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多