【问题标题】:Can't Find A Reponsitory找不到存储库
【发布时间】:2020-09-12 20:22:17
【问题描述】:

我有一个存储库接口

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

缺少什么?

【问题讨论】:

  • 看起来组件扫描配置不正确。但要进行更深入的分析,我们至少需要包结构。
  • @Jens 你是绝对正确的。我将在我自己的答案中发布详细信息。

标签: spring-boot spring-reactive


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 2020-10-24
    • 2012-08-11
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多