@SpringBootApplication 公共类ReactiveCouchbaseExample1Application {
@Bean
CommandLineRunner employees(ApplicationContext context) {
EmployeeRepository repository = context.getBean(EmployeeRepository.class);
return args -> {
repository
.deleteAll()
.subscribe(null,null,()->{
Stream.of(new Employees(UUID.randomUUID().toString(), "Nikhil", 23, 3000L),
new Employees(UUID.randomUUID().toString(), "Shubham", 23, 3000L),
new Employees(UUID.randomUUID().toString(), "Anshul", 23, 3000L))
.forEach(employee->{
repository.save(employee)
.subscribe(System.out::println);
});
});
};
}
public static void main(String[] args) {
SpringApplication.run(ReactiveCouchbaseExample1Application.class, args);
}
我想在我的应用程序上下文加载后立即运行此逻辑,但是当我启动我的应用程序时,它会显示此错误。
Method employees in com.reactive.reactivecouchbaseexample1.ReactiveCouchbaseExample1Application required a bean of type 'com.reactive.repository.EmployeeRepository' that could not be found.
有人可以告诉我如何在CommandLineRunner中创建存储库bean。 我也用谷歌搜索,但找不到任何答案。
这是我的存储库
@Repository
public interface EmployeeRepository extends
ReactiveCouchbaseRepository<Employees, String>{
}
答案 0 :(得分:0)
扫描的组件必须与带有注释的类@SpringBootApplication
位于同一包中,或其子包中。我只能假设它是ReactiveCouchbaseExample1Application.class
。
也许您的仓库位于不同的软件包中,或者您没有使用@SpringBootApplication
或@ComponentScan
启用组件扫描。