我从 Sprint Boot 5 开始,遇到了一些我不明白的问题。也许有人可以为我阐明这一点。
我将 Sprint Boot 2.1.7 与 Spring JPA 和 PostgreSQL 一起使用。我试图简单地启用 JpaRepositories 的发现。当@EnableJpaRepositories我的“主”类(带有注释的类@SprintBootApplication)上有 时,一切正常。但是,我想吸取良好的实践,因此我想在关注点之间拆分我的配置。因此,我创建了一个JpaConfig类来注册 Bean 并为我的应用程序启用 JPA 功能。然而,启用注释似乎被忽略了。
我尝试在此配置文件中注册一个虚拟 Bean,以确保组件扫描找到我的类,并且它可以正常工作。我在网上看到过在配置类上启用属性的示例。为什么它对我不起作用?我错过了什么吗?这是 Spring Boot 最新版本中禁用的功能吗?
我的代码如下所示:
src/main/java/com/gretro/petclinic/PetClinicApplication.java
package com.gretro.petclinic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication()
public class PetClinicApplication {
public static void main(String[] args) {
SpringApplication.run(PetClinicApplication.class, args);
}
}
src/main/java/com/gretro/petclinic/config/JpaConfig.java
package com.gretro.petclinic.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
public class JpaConfig {
}
src/main/java/com/gretro/petclinic/vets/repositories/VetSpecialtiesRepository.java
package com.gretro.petclinic.vets.repositories;
import com.gretro.petclinic.vets.models.VetSpecialty;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface VetSpecialtiesRepository extends JpaRepository<VetSpecialty, Long> {
}
这是我在启动时遇到的错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.gretro.petclinic.init.DataSeeder required a bean of type 'com.gretro.petclinic.vets.repositories.VetSpecialtiesRepository' that could not be found.
Action:
Consider defining a bean of type 'com.gretro.petclinic.vets.repositories.VetSpecialtiesRepository' in your configuration.
MYYA
红糖糍粑
慕斯709654
相关分类