問題 加載多個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文件