SpringData JPA學習筆記(二)為什繼承Repository接口
阿新 • • 發佈:2019-01-01
倉庫 相關 pri 方式 標記 訪問控制 text 完成 控制 Repository接口
1.Repository是一個空接口,即是一個標記接口。
2.若我們定義的接口繼承了Repository,則該接口會被IOC容器識別為一個Repository Bean,納入到IOC容器中,進而可以在該接口中定義滿足一定規範的方法。IOC容器中實際存放了繼承了Repository的接口的實現類,而這個實現類由spring幫助完成 。在applicationContext.xml中我們配置了springdata:這裏的base-package指定了Repository Bean所在的位置,在這個包下的所有的繼承了Repository的接口都會被IOC容器識別並納入到容器中,如果沒有繼承Repository則IOC容器無法識別。
3.我們也可以通過註解的方式替代繼承Repository接口@RepositoryDefinition(domainClass=需要處理的實體類的類型,IdClass=逐漸的類型)。
4.除了使用註解和繼承Repository接口我們還可以繼承Repository的子接口與實現類,他們的關系如下:
Repository:僅僅是一個標識,表明任何繼承它的均為倉庫接口類。
CrudRepository:繼承Repository,實現了一組CRUD操作相關的方法。 PagingAndSortingRepository:繼承CrudRepository,實現了一組分頁排序相關的方法。
JpaRepository:繼承PagingAndSortingRepository,實現一組JPA規範的相關方法。
自定義的XxxxRepository:需要繼承JpaRepository,這樣的XxxxRepository接口就具備了通用的數據訪問控制層的能力。
JpaSpecificationExecutor:不屬於Repository體系,實現一組JPACriteria查詢相關的方法。
SpringData JPA學習筆記(二)為什繼承Repository接口