Java maven项目中 spring加载多个xml文件

问题 加载多个xml文件  跨包加载

异常  UnsatisfiedDependencyException  依赖异常

NoSuchBeanDefinitionException  been定义异常


背景 : 我这边是一个maven项目   其中有一个后台线程任务main程序  这个程序是单独的一个包 以来多个层 service dao 等等

如果我要把他单独的分离出来,那么就需要解决加载到service里面的springxml文件和dao的springxml文件

首先因为加载xml只能加载一个对象 也就是说

ApplicationContext context

只能存在一个  后面一个后把前面的覆盖掉所以我们不能进行多次加载.

那么我这个后台线程又不是web项目,那么我就没有办法在web.xml进行运行时加载

最后的解决方案就是在我这个线程项目中的xml加上

<import resource="classpath*:spring*.xml" />
这个是个重点 是引用其他的包的xml   我这里使用了通配符

  • 同名资源存在时,classpath: 只从第一个符合条件的classpath中加载资源,而classpath*: 会从所有的classpath中加载符合条件的资源
  • classpath*:需要遍历所有的classpath,效率肯定比不上classpath,因此在项目设计的初期就尽量规划好资源文件所在的路径,避免使用classpath*来加载
  • spring*.xml 是让我加载所有已spring开头的xml文件
ok这样我照样正常的在我的main中使用ClassPathXmlApplicationContext
就可以把所有引用的xml加载进来!
下面是一些我找的参考:




ClassPathXmlApplicationContext
发布了48 篇原创文章 · 获赞 39 · 访问量 22万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章