我在为春 Boot 做一个定制的起动器。
我有这个类用于配置自动启动器
@Configuration
@AutoConfigureAfter(SpringDataWebAutoConfiguration.class)
@ComponentScan(basePackages = {"com.closure.table"})
public class ClosureTableAutoConfiguration {
CategoryTypeRepository categoryTypeRepository; // is under com.closure.table.repository and is annotated
public ClosureTableAutoConfiguration(CategoryTypeRepository categoryTypeRepository){
this.categoryTypeRepository = categoryTypeRepository;
}
@Bean
@ConditionalOnMissingBean
public ClosureTable closureTable() {
return new ClosureTable();
}
@Bean
@ConditionalOnMissingBean
@DependsOn("CategoryTypeRepository")
public CategoryTypeService getCategoryTypeService() {
return new CategoryTypeService(categoryTypeRepository);
}
...
字符串
启动器应用程序在经典的Web应用程序中工作得很好,如果我不使用服务中的存储库,否则我会得到这个错误:
Consider defining a bean of type 'com.closure.table.repository.CategoryTypeRepository' in your configuration.
型
在Web应用程序中,我创建了一个像这样的配置类
@Configuration
@Import({ClosureTableAutoConfiguration.class})
public class ClosureTableConfiguration {
}
型
有没有一种方法来实现这个范围?
1条答案
按热度按时间ndasle7k1#
经过10个小时和阅读更多的网络上,我找到了解决方案,工程。
在启动器的自动配置中,我以这种方式更改代码:
字符串
...
型
然后简单地添加自定义启动器作为依赖项。
此时,自定义启动器和测试应用程序都指向相同的数据库模式。