Spring注解方式無(wú)法掃描Service注解的解決
Spring注解方式無(wú)法掃描Service注解
場(chǎng)景描述
系統(tǒng)啟動(dòng)沒有任何錯(cuò)誤,但是單獨(dú)訪問controller就會(huì)報(bào)錯(cuò),原因是做了service注入。貼兩張圖吧

- 1.分析: 找不到bean的原因就是service注解沒有被掃描到spring中生成bean
- 2.嘗試:手動(dòng)將service在spring的文件中進(jìn)行配置,啟動(dòng)正常,訪問也正常,更證明了第一點(diǎn)的分析結(jié)果。
- 3.查資料,大致查詢了很多spring+springmvc+hibernate的框架搭建,核對(duì)我的配置(粗心),jar包等,其實(shí)都沒錯(cuò),貼一些我覺得寫得比較明白清楚的文章大家可以參考,重復(fù)寫相同的東西價(jià)值不大。
- 4.繼續(xù)查詢資料:我在開源中國(guó)查到一篇文章,和我的情況比較類似,但是樓主沒有說(shuō)明具體的解決情況,只是說(shuō)了一句是配置文件問題,我想我的配置文件都能正常啟動(dòng),理論上不應(yīng)該存在問題才對(duì),無(wú)奈下,再次返回檢查配置文件,由于springmvc的掃描是生效了的,所以我就檢查我的spring-context.xml文件, 兩個(gè)文件都是最簡(jiǎn)單的配置,所以沒貼,最后貼一下我報(bào)錯(cuò)的地方;
- 5.反思一下,還是個(gè)人太粗心,spring框架已經(jīng)最新到5版本了,所以不存在說(shuō)配置無(wú)法掃描的情況,出現(xiàn)問題就應(yīng)該是文件沒對(duì),各位共勉!

spring配置不掃描service層的原因
我將contoller給springmvc進(jìn)行掃描,然后其余所有交給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是需要加的
找了好久問題?。?!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis 源碼分析 之SqlSession接口和Executor類
mybatis框架在操作數(shù)據(jù)的時(shí)候,離不開SqlSession接口實(shí)例類的作用,下面通過本文給大家實(shí)例剖析MyBatis 源碼分析之SqlSession接口和Executor類,需要的朋友參考下吧2017-02-02
通過實(shí)例了解Java 8創(chuàng)建Stream流的5種方法
這篇文章主要介紹了通過實(shí)例了解Java 8創(chuàng)建Stream流的5種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
MyBatis動(dòng)態(tài)SQL標(biāo)簽的用法詳解
這篇文章主要介紹了MyBatis動(dòng)態(tài)SQL標(biāo)簽的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
通過Java計(jì)算文件的MD5值實(shí)現(xiàn)方式
本文將詳細(xì)介紹如何使用Java語(yǔ)言來(lái)計(jì)算文件的MD5值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
SpringBoot返回統(tǒng)一的JSON標(biāo)準(zhǔn)格式實(shí)現(xiàn)步驟
這篇文章主要介紹了SpringBoot返回統(tǒng)一的JSON標(biāo)準(zhǔn)格式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08

