Не могу найти хранилище - PullRequest
0 голосов
/ 26 мая 2020

У меня есть интерфейс репозитория

@Repository
public interface WordRepository extends ReactiveCrudRepository<Word, Long> {}

И в классе @SpringApplication у меня есть

@Bean
ApplicationListener<applicationReadyEvent> ready(WordRepository rep) {
   ...
}

для заполнения некоторых данных в базе данных. Он не будет компилироваться. После сообщения «ПРИЛОЖЕНИЕ НЕ ЗАПУСКАЕТСЯ» отображается

Action:

Consider defining a bean of type 'com.example.reactive.wordservice.WordRepository' in your configuration.

С аннотацией или без нее @Repository не приведет к другому результату. Вместо этого я перехожу на другой подход с новым классом.

@Component
class WordDataInitializer {

  private static Logger log = LoggerFactory.getLogger(WordDataInitializer.class);

  private WordRepository wordRepository;

  public WordDataInitializer(WordRepository wordRepository) {
    this.wordRepository = wordRepository;
  }

   @EventListener(ApplicationReadyEvent.class)
   public void initializeDB() throws URISyntaxException, IOException {
    ...
   }
}  

Результат все тот же. Я делал это много раз и не знаю, почему на этот раз это не работает с Reactor. Spring Boot - это последняя версия 2.3.0.

Чего не хватает?

1 Ответ

0 голосов
/ 26 мая 2020

Проснувшись сегодня утром, я понял, что добавленная мной зависимость может вызвать проблему. Я добавил JPA начальных данных Spring Boot, чтобы получить аннотацию @Entity. Удаление зависимости решает проблему.

Реактивная БД работает иначе. Сущность - это один случай. Кроме того, файл схемы. sql не будет получен автоматически, как это делает подход JPA. Мне нужно написать код, чтобы забрать файл схемы.

...