2016-01-30 215 views
0
@Repository 
public interface userRepository extends JpaRepository<User, Long> { 

} 

有很多網站展示了使用JpaRepository在Spring 4中創建DAO的這種方式。 @Repository也一樣@Component通過使用操作者new而組分掃描具有註釋@Component@Service等類(使用@Component掃描註解)創建實例,@Service等容器內部豆然後容器如何爲@Repository創建實例如上所示,因爲它是一個純粹抽象的接口,我們不能使用new運算符爲接口創建實例。@Repository春季4

+0

這不是普通的彈簧,而是Spring Data,具體是Spring Data JPA。 –

回答

0

Spring將爲擴展JpaRepository的聲明接口創建一個SimpleJpaRepository實例。
注意:還有更多的魔法正在進行。您可以通過@Query將自己的查詢添加到界面中,並且存儲庫也支持事務管理。爲了達到這個目的,Repository將被包裝在一個可以攔截並動態實現其方法的代理中。

+0

沒有春天什麼都不會創造,Spring Data JPA會創建並添加行爲。 –

+0

他在談論JpaRepository,所以它顯然是隱含的。 Spring Data JPA是Spring的一部分,所以我說的是真的。 – Cyril

+0

取決於你對Spring的定義,對於大多數人來說Spring是Spring框架,並且僅僅是這樣,並且不包括Spring Data或者任何其他組合項目。帖子也不是標籤,問題是指向Spring,而不是Spring Data JPA。無論是明確還是更好,然後假設事物是隱含的。 –