Создание Бина внутри загрузочного приложения Spring с использованием командной строки - PullRequest
0 голосов
/ 06 ноября 2018

@ 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. Я тоже погуглил, но не смог найти ответов.

Это мой репозиторий

@Repository
public interface EmployeeRepository extends 
ReactiveCouchbaseRepository<Employees, String>{ 
}

1 Ответ

0 голосов
/ 18 декабря 2018

Отсканированный компонент должен быть в том же пакете, что и @SpringBootApplication аннотированный класс, или его подпакет. Я могу только предположить, что это ReactiveCouchbaseExample1Application.class.

Возможно, ваш репозиторий находится в другом пакете, или вы не включили сканирование компонентов с помощью @SpringBootApplication или @ComponentScan.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...