java - 仅在重构包名称之后,才考虑在配置中定义 * 类型的 bean

标签 java spring spring-boot

这段代码一直工作得很好,我只是重构了包名称,spring 上下文不能再注入(inject)这个 bean。 顺便说一句,我确信新的包名称仍然与 @ComponentScan 范围匹配

@Repository("tenantsConfigRepository")
public interface TenantsConfigRepository extends JpaRepository<TenantsConfig, Long> {
    public TenantsConfig deleteByName(String name);
}
@Service
public class TenantsConfigService {

    TenantsConfigRepository tenantsConfigRepository;


    @Autowired
    public TenantsConfigService(TenantsConfigRepository tenantsConfigRepository) {
        this.tenantsConfigRepository = tenantsConfigRepository;
    }

    public List<TenantsConfig> findAll() {
        return tenantsConfigRepository.findAll();
    }

    public Optional<TenantsConfig> find(long id) {
        return tenantsConfigRepository.findById(id);
    }

    public void saveOrUpdate(TenantsConfig tenantsConfig) {
        tenantsConfigRepository.save(tenantsConfig);
    }

    public void delete(TenantsConfig tenantsConfig) {
        tenantsConfigRepository.delete(tenantsConfig);
    }

    public void deleteByName(String name) {
        tenantsConfigRepository.deleteByName(name);
    }
}

应用程序无法启动并打印此文本

***************************
APPLICATION FAILED TO START
**************************

Description:

Parameter 0 of constructor in com.example.admin.service.TenantsConfigService required a bean named 'entityManagerFactory' that could not be found.


Action:

Consider defining a bean named 'entityManagerFactory' in your configuration.

最佳答案

感谢大家的回复,我明白了,我正在使用配置类中的数据源,这些配置的范围仅限于用于特定的包,我只是更改了basePackages属性以匹配新的包名称。

@Configuration
@EnableJpaRepositories(basePackages = "com.example.admin", entityManagerFactoryRef = "adminEntityManager", transactionManagerRef = "adminTransactionManager")

em.setPackagesToScan("com.example.admin.entity");

em 指的是 EntityManager

关于java - 仅在重构包名称之后,才考虑在配置中定义 * 类型的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849044/

相关文章:

具有非递归任务的 Java ForkJoinPool,工作窃取是否有效?

java - 使用 spring boot 重新打包启用 JMX

java - Gitlab 管道上的测试容器 "JedisConnectionException: Could not get a resource from the pool"

java - 在 Spring Boot 中使用 Copy 命令从 Postgres 导出数据

使用 scala 插件在 Intellij/maven 中配置 1.7 时的 Java 6 类

java - 如何让gradle/Eclipse/play框架协同工作?

java - 在 jboss 7.0.0 GA 中启用 TLSv1.3

java - Spring Cloud Stream Kafka 记录太大

Spring批处理尝试再次创建持久的批处理作业存储库

java - Spring Context 启动时打印应用程序横幅