我正在为Spring Boot创建自定义起动器。 我有此类用于Autostarter

问题描述 投票:0回答:1
Consider defining a bean of type 'com.closure.table.repository.CategoryTypeRepository' in your configuration.

在Web应用程序中,我已经创建了一个配置类,例如

@Configuration @Import({ClosureTableAutoConfiguration.class}) public class ClosureTableConfiguration { }

有一种方法可以完成此范围?
    

10小时后阅读更多信息,我找到了有效的解决方案。
在起动器的自动配置I以这种方式更改代码:

@Configuration @AutoConfigureBefore(JpaRepositoriesAutoConfiguration.class) @EnableJpaRepositories @ComponentScan //needed @Import(StarterEntityRegistrar.class) //needed to load entity public class ClosureTableAutoConfiguration { // .... @Bean @ConditionalOnMissingBean public CategoryTypeService getCategoryTypeService(CategoryTypeRepository categoryTypeRepository) { //moved autowired from constructor to bean definitions return new CategoryTypeService(categoryTypeRepository); } }

...

public class StarterEntityRegistrar implements ImportBeanDefinitionRegistrar { @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { AutoConfigurationPackages.register(registry, CategoryType.class.getPackageName()); } }

spring-boot spring-data-jpa spring-starter
1个回答
0
投票
在这一刻,自定义启动器和测试应用程序,指向同一DB架构。

如官方春季文档中所述

请参见

Https://docs.spring.io/spring-boot/reference/features/developing-auto-configuration.html#features.html#features.developing-auto-configuration to段中注明“位置自动核能候选者”段落。正确的方法应该利用 @import
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.