如何将一个项目的spring-config.xml导入另一个项目的spring-config.xml?


75

我有两个名为simple-core-impl和的项目simple-core-web

这两个项目都是,spring based并且都具有一个父项目名称simple-core

simple-impl-config.xmlsimple-core-impl项目simple-web-config.xmlsimple-impl-config.xml

我有一个具有类的bean:simple service它具有一个向我返回消息“ hello World”的方法。

我想导入中的simple-impl-config.xmlsimple-web-config.xml因此bean可以在simple-core-web项目中的控制器中使用。

simple-core-web项目中有一个jarsimple-core-impl项目。

因此,请告诉我如何将spring-config.xml一个项目导入spring-config.xml另一个项目,以便只需导入即可将first的所有bean导入另一个项目?

我不想重写所有bean。


将来的读者,如果遇到“我认为我写的东西应该可以工作”的问题,也会看到带有“ status = declined”的错误。 github.com/spring-projects/spring-framework/issues/16017 以防万一URL最终失败,错误发布的标题是“从具有通配符类路径和通配符路径的JAR文件的根目录导入XML文件不起作用[SPR-
11390

Answers:




10

由于某些原因,里卡多建议的导入对我没有用。我得到它与以下声明一起工作:

<import resource="classpath*:/spring-config.xml" />


6

这是基于注释的示例:

@SpringBootApplication
@ImportResource({"classpath*:spring-config.xml"})
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

1

您必须在模块A中添加模块B的jar / war,并在新的spring-module文件中添加类路径。只需添加此行

spring-moduleA.xml-是模块A中资源文件夹下的文件。通过添加此行,它将所有bean定义从模块A导入到模块B。

模块B / spring-moduleB.xml


import resource="classpath:spring-moduleA.xml"/>

<bean id="helloBeanB" class="basic.HelloWorldB">
  <property name="name" value="BMVNPrj" />
</bean>

1
<import resource="classpath*:spring-config.xml" /> 

这是最适合用于类路径配置的方法。尤其是当您在类路径中的其他项目中搜索.xml文件时。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.