Spring注解方式無法掃描Service注解的解決
Spring注解方式無法掃描Service注解
場景描述
系統(tǒng)啟動沒有任何錯誤,但是單獨訪問controller就會報錯,原因是做了service注入。貼兩張圖吧
- 1.分析: 找不到bean的原因就是service注解沒有被掃描到spring中生成bean
- 2.嘗試:手動將service在spring的文件中進行配置,啟動正常,訪問也正常,更證明了第一點的分析結果。
- 3.查資料,大致查詢了很多spring+springmvc+hibernate的框架搭建,核對我的配置(粗心),jar包等,其實都沒錯,貼一些我覺得寫得比較明白清楚的文章大家可以參考,重復寫相同的東西價值不大。
- 4.繼續(xù)查詢資料:我在開源中國查到一篇文章,和我的情況比較類似,但是樓主沒有說明具體的解決情況,只是說了一句是配置文件問題,我想我的配置文件都能正常啟動,理論上不應該存在問題才對,無奈下,再次返回檢查配置文件,由于springmvc的掃描是生效了的,所以我就檢查我的spring-context.xml文件, 兩個文件都是最簡單的配置,所以沒貼,最后貼一下我報錯的地方;
- 5.反思一下,還是個人太粗心,spring框架已經最新到5版本了,所以不存在說配置無法掃描的情況,出現(xiàn)問題就應該是文件沒對,各位共勉!
spring配置不掃描service層的原因
我將contoller給springmvc進行掃描,然后其余所有交給spring掃描
然后發(fā)現(xiàn)service層的EmployeeService并沒有掃描到出現(xiàn)以下問題
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘springmvc.crud.service.EmployeeService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
… 39 more
最終發(fā)現(xiàn)原因是spring配置文件里面context:exclude-filter是不要加use-default-filters的,而context:include-filter是需要加的
找了好久問題!?。?/p>
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java多態(tài)實現(xiàn)電子寵物系統(tǒng)
這篇文章主要為大家詳細介紹了java多態(tài)實現(xiàn)電子寵物系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況
這篇文章主要介紹了MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03