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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章