我正在使用 Spring Boot 2.0.0.M1
(因此 Spring 5.0.0.RC1
)。我正在尝试对其进行配置以使用,PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE
但到目前为止我还没有工作。
我试过了:
该
application.yml
文件具有:spring: jackson: property-naming-strategy: SNAKE_CASE
配置一个
Jackson2ObjectMapperBuilder
bean:@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 }
配置一个
ObjectMapper
bean:@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")
}
更新:
这确实是固定的M3
;如果您需要其中SnakeCaseStrategy.SNAKE_CASE
的设置application.yml
就足够了。