我不确定我是否理解正确,所以想澄清一下。 如果我想为我的实体创建一个存储库,例如:
public interface BookRepository extends JpaRepository<Book, Id> {}
我应该用@Repository注释它吗?根据这个question @Repository注释将异常从SQL转换为持久性注释,但JpaRepostiory是否已经这样做了?什么是最佳实践 - 注释与否?
答案 0 :(得分:8)
使用JpaRepository
时,您不需要使用@Repository
它只是一个接口,具体实现由Spring动态创建为代理对象,并在那里处理JDBC异常。
创建自定义DAO时需要使用@Repository
,以便spring创建一个bean并正确处理异常。
答案 1 :(得分:0)
你需要用@Repository注释它,所以spring知道它应该将该类实例化为bean。在这方面,@ Component,@ Service和@Repository注释都有相同的用途。 @Repository将范围缩小到专门处理获取和存储数据的服务。