Spring项目导入另一个spring项目

时间:2011-05-24 13:33:29

标签: java spring

我有两个春季项目。两者都是当前的portlet。

我想拿一个并将其转换为jar并将其作为依赖(使用maven)添加到另一个然后调用代码)

关于步骤的任何建议都会很棒。

我已经尝试过,虽然所有内容(包含上下文)都在我的jar中打包,但是当从使用jar的portlet中调用类时,应用程序上下文未加载/工作

Current jar structure 
application-context.xml
META-INF/
<package>/classes

EDIT_ _ 的 重新错误:无法为类x找到Bean定义

2 个答案:

答案 0 :(得分:6)

有几种方法可以做到这一点,但这在很大程度上取决于你想要做什么。您可以在web.xml中包含上下文...

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml, classpath:childContext.xml</param-value>
</context-param>

另一种选择是直接从应用程序上下文中导入子上下文。

<import  resource="classpath:childContext.xml/>

我不是一个过于强烈的粉丝,因为这些上下文合并,这可能是豆名的噩梦;但是,他们确实有效。

通常情况下,您的JAR会暴露某种工厂或静态构造函数,这些构造函数会读取它自己的Spring配置XML,然后简单地公开您要用作服务的内容。这可能不是解决您特定问题的最佳解决方案,但需要考虑。

答案 1 :(得分:2)

从技术上讲,安德鲁提供的答案将有效。但正如他所指出的那样,通过这种方式将来自不同项目的bean合并在一起通常不是一个好主意。 您可能想稍微退一步并考虑以下问题:

  1. 为什么两个不同的项目首先出现?您想在多个父项目中重用第二个项目吗?
  2. 子上下文公开的组件/服务需要由父上下文直接使用。
  3. 重新考虑这些依赖关系可能会带来更优雅和可维护的解决方案。

相关问题