天天看點

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

剛接觸spring boot,從網上找了一篇教程,試着做一個spring boot+mybatis的小demo,使用STS建構的,IDE用的是eclipse

參考了這篇教程https://segmentfault.com/a/1190000017211657

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

 基本是參照教程寫的,那篇教程寫得不錯,講解得比較詳細,但是我在運作的時候出現了兩個問題

一、controller包下面的userController掃描不到,是以裡面的 @RequestMapping不起作用

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

 解決方法:

在網上找到了解決方法,就是在啟動類加上注解@ComponentScan,@ComponentScan是spring boot專門用來掃@Component,@Service, @Repository, @Controller等注解的注解。但是到了我的demo裡面還是不起作用,然後又去看了一下注解@ComponentScan的文檔,有這麼一段話

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

大概的意思就是要給 

basePackageClasses

or

basePackages

 指定一個包的話,就會從這個包開始掃描,如果不指定的話,就會從加了這個注解的類所在的包開始掃描。是以官方推薦是把啟動類放在bean,controller,service,dao等需要掃描的包的上一級,但是我這樣試過之後,在我的環境之下不起作用,搞不懂是為什麼,是以後來我就把啟動類放到了controller包中(即使這樣做可能不太規範)

是以我做了以下的修改

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

從example包開始掃描,這樣的話example下面的bean,controller,service,dao包裡面的注解就都能掃描到了。

二、@ Autowired注入失敗

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

 解決方法:

在網上找到的解決方法是添加注解@MapperScan

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

當使用Java進行配置時,可以用@MapperScan注解用來注冊Mabatis映射接口

于是我做了以下的修改

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

 兩個地方修改之後,就完全運作起來了

spring [email protected]注入失敗和自定義controller掃描失敗的解決方法

 問題解決,趕緊寫了這篇部落格,希望能夠幫到遇到相同問題的人

繼續閱讀