情況是這樣的:web工程采用了ssm框架,dao和service都是通過annotation方式注入的,工程運行正常。后來把service和dao打成jar放在工程的lib目錄下,問題來了,配置沒改動,結果就是不能自動注入dao和service。但是如果把dao和service在spring配置文件中通過xml文件配置,這些component能找到。
搜索了一把,發現這個問題比較常見,大部分帖子說的是在打jar包的時候add entity directory,仔細看了下,我的jar包是通過maven打包的,entity directory都在,所以我的問題不是這個。那問題就可能是spring context掃描包的路徑不對。
幾經周折,發現stackoverflow上有人說需要在
<context:component-scan base-package="cn.xjy.service"/>這個配置里,加一級目錄,即沒打jar包的時候是前面說的配置,如果打了jar包,就應該是
<context:component-scan base-package="main.cn.xjy.service"/>,添加了之后發現component自動注入了。 補充一句,我的工程是maven工程。
注意:有的Eclipse會生成這個(可能會出現這個錯誤!出錯的解決辦法如上)

有的Eclipse不會生成這個文件夾,應該不會出現這個錯誤
