spring-data-jpa @EnableJpaRepositories/@EntityScan注解在Spring Data jpa配置设置中是必需的吗?

oogrdqng  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(279)

我在学习本教程时,教师正在配置Spring Data JPA。他创建了Entity类和Repository接口,然后在主应用程序上添加了@EnableJpaRepositories和@EntityScan注解,如下所示:

@SpringBootApplication
@ComponentScan({"com.test.controller", "com.test.services"})
@EnableJpaRepositories("com.test.repository")
@EntityScan("com.test.entity")
public class MainApplication{
    public static void main(String args[]){
         SpringApplication.run(MainApplication.class, args[]);
    }
}

我在边上创建了相同的项目,它有相同的Entity类和Repository接口,但是我的主应用程序没有这些注解。相反,我只添加了@SpringBootApplication。尽管没有上述注解,我发现代码运行得很好,从数据库中提取数据没有问题。所以我的问题是:在代码中添加这些注解的好处是什么?2仅仅是为了指定可以找到相应文件的包吗?3还是有其他的好处?

c9x0cxw0

c9x0cxw01#

默认情况下,Spring会在你放置主类的包中搜索实体和仓库(在这个包的下面)。
java
-com公司
--- Package 1
-----AnyEntity.java
--- Package 2
-----Main.java
Spring将无法自动找到AnyEntity。在这种情况下,您需要使用@EntityScan指定实体的位置。当涉及到存储库时,您可以使用@EnableJpaRepositories类似地处理它。

相关问题