Mor*_*anP 1 jackson kotlin spring-boot spring-autoconfiguration
在我的 Spring Boot/Kotlin 项目中,我试图让 JSON 转换器忽略其余控制器响应中的空值。
我尝试在 application.yml 中设置以下内容:
spring:
jackson:
default-property-inclusion: non_null
Run Code Online (Sandbox Code Playgroud)
我还尝试提供 of@Bean类型Jackson2ObjectMapperBuilder并@ObjectMapper配置为.serializationInclusion(JsonInclude.Include.NON_NULL),但它仍然序列化所有空属性。
使用 Spring Boot 2.3.0、Kotlin 1.3.72、AdoptOpenJDK 13
好吧,我通过从头开始创建一个新项目并添加当前项目的部分来发现问题,直到出现异常行为。
事实证明,问题出在用于添加 CORS 映射的类中:
@EnableWebMVC
@Configuration
class WebConfiguration : WebMvcConfigurer {
override fun addCorsMappings(registry: CorsRegistry) {
registry.addMapping("/**")
.allowedOrigins("*")
}
}
Run Code Online (Sandbox Code Playgroud)
我想我添加了@EnableWebMVC如示例中所示的内容,但该类与类不在类层次结构的同一部分中@RESTController,因此看起来这就是未应用对象映射器配置的原因。我对 Spring/Boot 的内部接线了解不够,无法告诉你原因。
一旦我删除@EnableWebMVC并允许 Spring Boot 通过自动配置将其添加到应用程序类中,它就会按预期工作......
| 归档时间: |
|
| 查看次数: |
8985 次 |
| 最近记录: |