初學者,在學習spring boot專案中使用mybatis 本來是在dao介面上面使用@mapper注解,沒什么問題,然后在網上查到@mapper注解是mybatis3.4版本以后出來的,所以就想到在沒有@mapper的時候應該就是用@repository注解,就出現了下面的問題,求解!


uj5u.com熱心網友回復:
沒人解答一下嘛- -
uj5u.com熱心網友回復:
我們現在一般都是用@Mapper 如果用@Respository 可以實作dao,然后自己寫實作方法! 幾個問題:一般現在都是用@RestController 因為前后臺分離,現在都用RestFul。默認都是已json回傳資料 2.@RequestMapping 現在都是@GetMapping @PostMappinguj5u.com熱心網友回復:
使用@repository要自己寫對應dao的mapper組態檔uj5u.com熱心網友回復:
是要在mybatis的組態檔里面配置嗎uj5u.com熱心網友回復:
我想的是@repository只是springIOC代理這個介面 怎么會不能自動注入的問題 而且mybatis不是只要在對應的mapper.xml里面把spacename改成這個介面的限定名就行了嗎- -uj5u.com熱心網友回復:
腳本語言不懂,咋個看法?uj5u.com熱心網友回復:
可以在啟動類上加@MapperScan注解指定介面所在包例如:@MapperScan(basePackages = {"com.tuyou.user.center.repository.standard"})
uj5u.com熱心網友回復:
控制層直接注入dao??? 不經過service?uj5u.com熱心網友回復:
如果要用@repository 在啟動類加@MapperScan("cn.qzzg.*.mapper") 指定到要相應的位置uj5u.com熱心網友回復:
Spring在掃描注解時,取消了掃描抽象類和介面,所以無法找到你用@reponsitory注解的dao介面。如果在idea中使用@Mapper注解,在@Autowired時,idea會提示找不到bean,但是不影響運行。但是我看著又難受,百度一堆規避的方法,包括設定改為warning等,后來發現一個騷操作,可以把兩個注解同時使用,這樣,@Mapper可以讓你找到bean,@reponsitory可以幫你治療強迫癥。uj5u.com熱心網友回復:
我也是這么做的uj5u.com熱心網友回復:
@Mapper是Mybatis的注解,是用來說明這個是一個Mapper,對應的xxxMapper.xml就是來實作這個Mapper,你改成了@repository,使用的是Spring的Bean注解,你覺得呢?uj5u.com熱心網友回復:
@Mapper只是用來掃描用的,當然你可以去掉,在springboot的啟動類上@MapperScan(basePackages = {"com.xxx.xxx"})來掃描uj5u.com熱心網友回復:
@Mappler是mybatis注解,mybatis運行時需要能找到到mapper檔案,然后運行時構建代理類來完成功能,和Spring沒有關系。你應該用@MapperScan來掃描mapper介面,讓mybatis能找倒這些介面。然后Spring的@ComponetScan也要掃描這些介面,這樣Spring才能管理這些mybatis生成的代理類。@Repository是Spring的注解,而且注解放在介面上也沒用也沒有意義,
uj5u.com熱心網友回復:
啟動類用@MapperScan的話還要啥自行車啊,dao上啥注解都不用uj5u.com熱心網友回復:
@repository 得注解在實作類上uj5u.com熱心網友回復:
@Repository需要在啟動類上添加注解@MapperScan("com.xxx.mapper")一起使用轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/101828.html
標籤:Java EE
上一篇:我拿表單來接受資料,js代碼里面進行表單提交,路徑都對的上后臺的方法,為什么前端頁面還是找不到我的路徑呢
下一篇:servlet運行后出現404
