@repository的含義,並且有時候卻不用寫,為什么?


一,首先:@repository是用來注解接口,如下圖:這個注解是將接口BookMapper的一個實現類(具體這個實現類的name叫什么,還需要再分析源碼找找看)交給spring管理(在spring中有開啟對@repository注解的掃描),當哪些地方需要用到這個實現類作為依賴時,就可以注入了.當然我們也可以主動給這個實現類命名,如下圖

 

 

 

 

二,為什么有時候我們不用@repository來注解接口,我們照樣可以注入到這個接口的實現類呢?如下圖,下圖是在接口沒有用

@repository注解的情況下,依然可以實現注入它的實現類.

 

 上面是在idea中報了紅線警告,說找不到這個實現類,但依然是可以運行,沒有問題(只是單純的警告),而在myeclipse中,是連警告都沒有的,運行完全沒問題.這是因為如下圖:

 

 是因為我們在mybatis的xml文件配置了上圖這個bean,它會去將dao這個層中的mapper(也就是我們的接口)都生成實現類,然后交給spring管理(因為mybatis.xml文件我們最終還是導入了spring容器中),所以我們這里不對這些接口用@repository注解,也是一樣可以用它的實現類,(這也是我們寫項目時,有時感覺完全是沒用到@repository注解的原因,因為沒有什么必要)而idea報紅線警告,可能是idea自己的原因,這個在我們對它對應的接口用@repository注解后,紅線警告會消失,運行也完全沒問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM