找不到回应

时间:2020-05-26 05:30:26

标签: spring-boot spring-reactive

我有一个存储库接口

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

在@SpringApplication类中,我有

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

将一些数据填充到数据库中。它不会被编译。在消息“ APPLICATION FAILED START”之后,它说

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 :(得分:0)

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

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