我有一个存储库接口
@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。
缺少什么?
答案 0 :(得分:0)
今天早上醒来后,我意识到我添加的依赖项可能会导致问题。我添加了Spring Boot入门数据JPA以获取@Entity批注。消除依赖关系可以解决问题。
反应数据库的工作方式不同。实体就是一种情况。另外,不会像JPA方法那样自动拾取schema.sql文件。我需要编写一些代码来选择架构文件。