剛接觸spring boot,從網上找了一篇教程,試着做一個spring boot+mybatis的小demo,使用STS建構的,IDE用的是eclipse
參考了這篇教程https://segmentfault.com/a/1190000017211657
基本是參照教程寫的,那篇教程寫得不錯,講解得比較詳細,但是我在運作的時候出現了兩個問題
一、controller包下面的userController掃描不到,是以裡面的 @RequestMapping不起作用
解決方法:
在網上找到了解決方法,就是在啟動類加上注解@ComponentScan,@ComponentScan是spring boot專門用來掃@Component,@Service, @Repository, @Controller等注解的注解。但是到了我的demo裡面還是不起作用,然後又去看了一下注解@ComponentScan的文檔,有這麼一段話
大概的意思就是要給
basePackageClasses
or
basePackages
指定一個包的話,就會從這個包開始掃描,如果不指定的話,就會從加了這個注解的類所在的包開始掃描。是以官方推薦是把啟動類放在bean,controller,service,dao等需要掃描的包的上一級,但是我這樣試過之後,在我的環境之下不起作用,搞不懂是為什麼,是以後來我就把啟動類放到了controller包中(即使這樣做可能不太規範)
是以我做了以下的修改
從example包開始掃描,這樣的話example下面的bean,controller,service,dao包裡面的注解就都能掃描到了。
二、@ Autowired注入失敗
解決方法:
在網上找到的解決方法是添加注解@MapperScan
當使用Java進行配置時,可以用@MapperScan注解用來注冊Mabatis映射接口
于是我做了以下的修改
兩個地方修改之後,就完全運作起來了
問題解決,趕緊寫了這篇部落格,希望能夠幫到遇到相同問題的人