Spring数据存储库在没有注释的情况下工作

时间:2017-08-17 08:28:22

标签: spring spring-boot spring-data spring-data-jpa

我正在使用Spring Data JPA存储库(例如MyRepo extends JpaRepository),它没有@Repository且没有@EnableJpaRepositories注释。有人能解释为什么吗?

3 个答案:

答案 0 :(得分:6)

可能你正在使用Spring Boot。

  

Spring Data存储库通常从Repository或者扩展   CrudRepository接口。如果您使用自动配置,   将从包含您的main的包中搜索存储库   配置类(使用@EnableAutoConfiguration注释的配置类   或者@SpringBootApplication)。

请查看https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-spring-data-jpa-repositories了解详情。

答案 1 :(得分:1)

有关更多信息,请查看这些用于自动配置Spring Data JPA存储库的类:

<强> JpaRepositoriesAutoConfigureRegistrar

文档:http://www.atetric.com/atetric/javadoc/org.springframework.boot/spring-boot-autoconfigure/1.2.0.RELEASE/org/springframework/boot/autoconfigure/data/jpa/JpaRepositoriesAutoConfigureRegistrar.html

l = [item.encode("utf-8") if isinstance(item, unicode) else str(item) for item in l]

答案 2 :(得分:0)

您不需要@Repository即可使用Spring Data JPA。 即使不使用@Repository对其进行注释,扩展CrudRepository或JPARepository的接口也可以使用。 需要使用此批注的根本原因是,它使DAO层中引发的未经检查的异常有资格转换为Spring DataAccessException。这反过来会更容易使用。这是使用@Repository

的重要方面

更多详细信息,请参见-> https://www.youtube.com/watch?v=z2re1MfWtz0&list=PLO0KWyajXMh4fGMvAw1yQ1x7mWayRcmX3&index=8&t=0s