🙄
Spring BootでjOOQの設定変更
Spring BootでjOOQの設定を変更したい場合、DefaultConfigurationCustomizerを使うと JooqAutoConfiguration の中で変更することができる。
環境
- Spring Boot: 3.2.3
- jOOQ: 3.18.11
- Kotlin: 1.9.22
DefaultConfigurationCustomizerの作成
DefaultConfigurationCustomizerを実装し、Bean登録することで設定変更が可能となる。
今回はClockの設定を変更するCustomizerを追加する。
@Component
class ClockCustomizer: DefaultConfigurationCustomizer {
override fun customize(configuration: DefaultConfiguration) {
// 固定のClockをjOOQに設定
val clock = Clock.fixed(Instant.parse("2024-03-01T00:00:00Z"), Clock.systemDefaultZone().zone)
configuration.set(clock)
}
}
テスト
DIコンテナに登録されているDSLContextからconfigurationを確認するとClockが差し代わっていることがわかる。
@SpringBootTest
class ClockCustomizerTest(
) {
@Autowired
private lateinit var dsl: DSLContext
@Test
fun clock() {
val clock = dsl.configuration().clock()
assertEquals("2024-03-01T00:00:00Z", clock.instant().toString())
}
}
Discussion