1. 程式人生 > >用spring annotation宣告的bean,當打包在jar中時,無法被掃描到的問題

用spring annotation宣告的bean,當打包在jar中時,無法被掃描到的問題

轉自:http://kyfxbl.iteye.com/blog/1675368

發現一個問題,十分蛋疼。 


我們專案是由N個工程組成的,外圍工程是web工程,內部的工程打包成jar,放入外圍工程的WEB-INF/lib 

內部的工程用到了spring的註解,例如@Service、@Controller等,在打成jar包之前,是可以掃描到的,但是打成jar包之後,就掃描不到了,報NoSuchBeanException 

在網上搜索了一下,發現了一個辦法,就是在用eclipse export jar的時候,勾選add directory entries 



這樣打出來的jar包,可以解決這個問題,在外圍也可以掃描到jar包內用註解宣告的bean。如果沒有勾上add directory entries,就不行了 


用jar命令,比較了一下兩種方法打出的jar包的區別,如圖: 





可以看到,勾選了add directory entries之後打出的jar包,多了路徑的資訊,可能這就是區別 

不過現在問題是,我們不可能都用手工export jar的方式來一個個匯出jar包,不知道在maven中,要配置外掛的什麼引數,可以達到同樣的效果