首页 > 解决方案 > 找不到仓库

问题描述

我有一个存储库接口作为

@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 版本。

什么不见​​了?

标签: spring-bootspring-reactive

解决方案


今天早上醒来后,我意识到我添加的依赖项可能会导致问题。我添加了 Spring Boot 启动数据 JPA 以获取 @Entity 注释。删除依赖关系可以解决问题。

反应式数据库的工作方式不同。实体是一种情况。此外,不会像 JPA 方法那样自动获取 schema.sql 文件。我需要编写一些代码来获取架构文件。


推荐阅读