私はスプリングブート2.0.0.M1
(したがって、スプリング5.0.0.RC1
)を使用しています。 PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE
を使用するように設定しようとしていますが、これまでのところ動作しません。スプリングブート2.0.0.M1でSNAKE_CASEを「グローバルに」使用するようにジャクソンを設定してください。
:
と
:application.yml
ファイル:ObjectMapper
豆の設定@Bean @Primary open fun jacksonBuilder(): Jackson2ObjectMapperBuilder { val jacksonMapperBuilder = Jackson2ObjectMapperBuilder() .failOnUnknownProperties(false) .modules(JavaTimeModule(), KotlinModule()) .propertyNamingStrategy(PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE) logger.info { "Jackson2ObjectMapperBuilder configured successfully..." } return jacksonMapperBuilder }
:
spring: jackson: property-naming-strategy: SNAKE_CASE
を
Jackson2ObjectMapperBuilder
豆の設定@Bean @Primary open fun objectMapper(): ObjectMapper { val objectMapper = ObjectMapper() objectMapper.registerModule(JavaTimeModule()) objectMapper.registerModule(KotlinModule()) objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE) logger.info { "ObjectMapper configured successfully..." } return objectMapper }
私はそれが@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class)
で、すべて単一のクラスに注釈を付けることによってそれを動作させるために見つけた唯一の方法...それは私の場合のための解決策ではありません。
他のオプションはありますか?
これはdependencies
"セクションには、" 私のbuild.gradle.kts
ファイルにあります。
dependencies {
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("io.github.microutils:kotlin-logging:1.4.4")
//compile("io.projectreactor:reactor-kotlin-extensions")
compile("org.springframework.boot:spring-boot-starter-actuator")
compile("org.springframework.boot:spring-boot-starter-data-mongodb-reactive")
compile("org.springframework.boot:spring-boot-starter-webflux")
compile(kotlin("stdlib"))
testCompile("io.projectreactor.addons:reactor-test")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
UPDATE:これは確かにM3
に固定し
。 SnakeCaseStrategy.SNAKE_CASE
が必要な場合は、application.yml
の設定で十分です。 Web-Flux module documentation状態として
バージョン2.0.0.M1のSpringブートと 'spring-boot-starter-web'という単純なプロジェクトを設定すると、オプション1はうまく動作します。ジャクソン 'ObjectMapper'ビーンをあなた自身のどこかで作成していないと確信していますか? – g00glen00b
WebFluxモジュールで「問題」のように見えます。それは 'M3'をターゲットにしています...私は待つことができます:) –