更新到 jOOQ 3.15.0 后如何修复 "Consider defining a bean of type 'org.jooq.DSLContext' in your configuration."

How to fix "Consider defining a bean of type 'org.jooq.DSLContext' in your configuration." after update to jOOQ 3.15.0

在我的 Vaadin 和 Spring 引导应用程序中,我已经从 jOOQ 3.14.12 更新到 3.15.0。此次更新后,我的应用程序不再启动。这是我得到的错误:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in org.komunumo.data.service.MemberService required a bean of type 'org.jooq.DSLContext' that could not be found.


Action:

Consider defining a bean of type 'org.jooq.DSLContext' in your configuration.

我不明白为什么我必须定义这个 bean,因为使用 jOOQ 3.14.12 我不必定义。据我所知,这是由 JooqAutoConfiguration 自动完成的。

Spring开机2.6回答

使用 Spring Boot 2.6,此问题不再重现,请参阅 https://github.com/spring-projects/spring-boot/issues/26439

Spring开机2.5回答

从 jOOQ 3.15.0 开始,jOOQ 附带了一个内置的 R2DBC 依赖项。 Spring Boot 2.5 还不知道这一点,因此,您必须明确排除 R2dbcAutoConfiguration (not R2dbcDataAutoConfiguration!)您的 spring 引导应用程序(当然,除非您将 R2DBC 与 jOOQ 一起使用):

@SpringBootApplication(exclude = { R2dbcAutoConfiguration.class })

请注意,您可能会看到以下错误消息:

No qualifying bean of type 'org.jooq.DSLContext' available: expected at least 1 bean which qualifies as autowire candidate.

我在这里添加,因为否则,人们可能无法从 Google 中找到这个答案。