我正在使用 Spring Boot 2.0.0.M1(因此 Spring 5.0.0.RC1)。我正在尝试对其进行配置以使用,PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE但到目前为止我还没有工作。
我试过了:
该
application.yml文件具有:spring: jackson: property-naming-strategy: SNAKE_CASE配置一个
Jackson2ObjectMapperBuilderbean:@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 }配置一个
ObjectMapperbean:@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就足够了。