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());
}
}
如官方春季文档中所述
请参见
Https://docs.spring.io/spring-boot/reference/features/developing-auto-configuration.html#features.html#features.developing-auto-configuration to段中注明“位置自动核能候选者”段落。正确的方法应该利用 @import