在Spring Boot 2.0.0.M1中将Jackson配置为“全局”使用SNAKE_CASE

我使用Spring Boot 2.0.0.M1 (因此Spring 5.0.0.RC1 )。 我试图将其配置为使用PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE但到目前为止我不工作。

我试过了:

  1. 具有以下内容的application.yml文件:

     spring: jackson: property-naming-strategy: SNAKE_CASE 
  2. 配置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 } 
  3. 配置一个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)注释每个类来实现它的唯一方法…但这不是我的情况的解决方案。

任何其他选项?


这是我build.gradle.kts文件中的dependencies “部分”:

 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的设置就足够了。

One Solution collect form web for “在Spring Boot 2.0.0.M1中将Jackson配置为“全局”使用SNAKE_CASE”

正如Web-Flux模块文档所述:

spring-core模块提供了反应式EncoderDecoder合约,可以将输入和Flux字节的字节序列化。

显然,在配置WebFluxConfigurationSupport的实例时,由JacksonAutoConfiguration自动配置的ObjectMapper不会被WebFluxAutoConfigurationWebFluxConfigurationSupport Jackson2JsonEncoder 。 这个问题已经在这里报道,目前正在计划M3里程碑。

  • 有什么办法可以实现春季webflux的分页和弹簧数据的反应
  • 如何使用RxJava收集异步响应
  • inheritance基本活动的导航抽屉
  • Lint在Java类上读取Kotlin对象时崩溃
  • 什么关闭kotlinx.coroutines通道呢
  • 在Kotlin的ArrayList中插入或添加项目?
  • 如何传递上下文隐含在Kotlin中的构造函数
  • 有没有更简单的方式来表达Kotlin中的匿名类?
  • 如何在Kotlin中指定“自己的类型”作为返回类型
  • Kotlin中活动与片段之间的交流
  • 在Intellij的Kotlin回调中断点没有被击中
  • Kotlin language will be the best programming language for Android.