The*_*One 6 spring-jdbc kotlin spring-boot quartz spring-data-r2dbc
我一直在尝试让 Quartz 在 Spring Boot 中使用 R2DBC 时工作。到目前为止,我还没有弄清楚如何做到这一点。这是因为当创建 JDBC 数据源时,它会尝试初始化我的 R2DBC 存储库,但它无法执行此操作,因为 R2DBC 本质上是反应性的,而 JDBC 本质上是阻塞的。
我考虑过的替代方案
相关 Gradle 依赖项
dependencies {
implementation("io.projectreactor.netty:reactor-netty:0.9.7.RELEASE")
implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")
implementation("org.springframework.boot:spring-boot-starter-quartz")
implementation("org.springframework.boot:spring-boot-starter-data-jdbc")
runtimeOnly("com.h2database:h2")
implementation("io.r2dbc:r2dbc-h2:0.8.3.RELEASE")
}
Run Code Online (Sandbox Code Playgroud)
我当前的石英配置
@Configuration
class QuartzConfig {
@Bean
@QuartzDataSource
fun dataSource(props: DataSourceProperties): DataSource {
return props.initializeDataSourceBuilder().type(HikariDataSource::class.java).build()
}
}
Run Code Online (Sandbox Code Playgroud)
相关R2DBC配置:
abstract class R2DbcConfiguration : AbstractR2dbcConfiguration() {
override fun getCustomConverters(): MutableList<Any> {
return mutableListOf(
// some custom converters
)
}
@Bean
fun connectionFactoryInitializer(
factory: ConnectionFactory
): ConnectionFactoryInitializer {
val init = ConnectionFactoryInitializer()
init.setConnectionFactory(factory)
val populator = CompositeDatabasePopulator()
populator.addPopulators(ResourceDatabasePopulator(ClassPathResource("schema.sql")))
init.setDatabasePopulator(populator)
return init
}
}
@Configuration
class ReleaseR2DbcConfiguration : R2DbcConfiguration() {
@Bean
override fun connectionFactory(): ConnectionFactory {
val config = H2ConnectionConfiguration.builder().file("./state").build()
return H2ConnectionFactory(config)
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序属性:
logging.level.org.springframework.data.r2dbc=DEBUG
logging.level.org.springframework.data.jdbc=DEBUG
spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=always
spring.datasource.url=jdbc:h2:file:./state
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1226 次 |
最近记录: |