程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring ApplicationContext与Jar中的多个XML文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring ApplicationContext与Jar中的多个XML文件?

开发过程中遇到Spring ApplicationContext与Jar中的多个XML文件的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring ApplicationContext与Jar中的多个XML文件的解决方法建议,希望对你解决Spring ApplicationContext与Jar中的多个XML文件有所启发或帮助;

classpath*:我认为是有限制的根文件夹下的文件不起作用。尝试将文件移动到文件夹下- 例如spring/application-a.xmlspring/application-b.xml。然后,您可以走一条路classpath*:/spring/application-*.xml

解决方法

我需要使用当前Maven构建中的“主”
applicationContext-a.xml创建一个ApplicationContext。另一个连接来自另一个Maven构建的类,并在Maven依赖关系包含的jar中预设。

这里的想法:

ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {
                "classpath*:applicationContext-*.xml"});

这应该从Classpath加载applicationContext-a.xml,因为它位于同一Project中。 这可行。

然后应该从依赖项jar中加载applicationContext-b.xml。 这行不通。

注意

"classpath*:applicationContext-*.xml"

仅匹配直接类路径中的XML,而jar中则不匹配。

我发现的是:

ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {
                "classpath*:applicationContext-*.xml","classpath*:applicationContext-b.xml"});

这是可行的,但前提是我必须明确告知罐子内xml的文件名:applicationContext-b.xml

我还需要使用它来进行集成测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(LOCATIOns = {"**/applicationContext*.xml"})
public class TESTClass { ... }

最好的主意可能是自定义加载程序?必须有一种方法可以使此模式工作&Hellip;

前一段时间有一个解决方案,它以相反的方式起作用:它仅从jar中获取applicationContext.xml。如果类路径中还有其他人,则它仅与此文件匹配。

大佬总结

以上是大佬教程为你收集整理的Spring ApplicationContext与Jar中的多个XML文件全部内容,希望文章能够帮你解决Spring ApplicationContext与Jar中的多个XML文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。