日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决springboot不扫描@repository的问题

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决springboot不扫描@repository的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:單獨使用@repository注解注dao層,而且不使用@mapperscan掃描時,啟動項目會報錯:
Field xxxxMapper in com.sms.shiro.service.impl.xxxxServiceImpl required a bean of type ‘com.sms.shiro.mapper.xxxxMapper’ that could not be found.
一,@mapper和@repository的區別:
1.@mapper是mybatis的注解,@repository是spring家族的注解。
2.使用@mapper注解時,spring并不認識,@autowired注入到service里的mapper會爆紅。

二,回到問題中來,明明springboot里的ComponentScan掃描了啟動器包下的所有含注解的組件,那為什么卻找不到@repository的組件?
原因:造成這個問題的原因是因為springboot在掃描時候自動過濾掉了接口和抽象類,所以@repository修飾的mapper接口并不能稱為一個bean,自然也就無法注入到service中。

三,解決方式:

第一種: 不使用@repository,在mapper層接口直接使用@mapper,但如果項目工程較大的話就會很麻煩。

第二種: 如果想使用@repository,因為springboot無法掃描到mapper接口,則在啟動器上使用@mapperscan掃描所有mapper接口的包,如:@MapperScan("com.sms.shiro.*.mapper")

第三種: 其實使用@mapperscan注解掃描mapper接口后,mapper接口就不需要@repository和@mapper去注冊bean了,但如果想項目結構比較明了,在使用了@mapperscan掃描后,@repository和@mapper都可使用,都不會報錯了,但是使用@repository會解決在service中@autowired mapper爆紅的問題。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的解决springboot不扫描@repository的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。