2016-01-30 216 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。无论是明确还是更好,然后假设事物是隐含的。 –