순수 Java에서 스프링 기본 설정을 재정의하지 않고 스프링 부팅 애플리케이션에서 Jackson을 구성하는 방법
내 스프링 부트 애플리케이션에서 나는 잭슨을 사용하여 물체를 직렬화합니다.ObjectMapper필요한 곳에저는 다음과 같은 답을 찾았습니다: https://stackoverflow.com/a/32842962/447426 하지만 이것은 Jacksons 기본 설정으로 새로운 지도자를 만듭니다.
다른 한편으로는 공식 문서에서 이것을 발견했습니다.저는 잘 이해하지 못했습니다.예제 코드가 없습니다.
그렇다면 스프링의 기본 객체 매퍼를 기반으로 스프링 객체 매퍼를 구성하는 방법은 무엇입니까?
이 구성은 주입되는 모든 "ObjectMapper"에서 활성화되어야 합니다.
사용해야 합니다.Jackson2ObjectMapperBuilderCustomizer이 때문에
@Configuration
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
jacksonObjectMapperBuilder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
// Add your customization
// jacksonObjectMapperBuilder.featuresToEnable(...)
}
};
}
}
왜냐하면Jackson2ObjectMapperBuilderCustomizer는 함수형이며, Java 8은 보다 컴팩트한 코드를 지원합니다.
@Configuration
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
return builder -> {
builder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
// Add your customization
// builder.featuresToEnable(...)
};
}
}
}
다른 한편으로는 공식 문서에서 이것을 발견했습니다.저는 잘 이해하지 못했습니다.예제 코드가 없습니다.
이는 단지 당신이 올바른 속성을 설정하기만 하면 된다는 것입니다.application.properties다양한 Jackson 기능을 사용하거나 사용하지 않도록 설정합니다.
spring.jackson.mapper.default-view-inclusion=false
spring.jackson.deserialization.fail-on-unknown-properties=false
언급URL : https://stackoverflow.com/questions/48519772/how-to-configure-jackson-in-spring-boot-application-without-overriding-springs-d
'programing' 카테고리의 다른 글
| 아이폰 및 OpenCV (0) | 2023.08.22 |
|---|---|
| node.js에서 다중 줄 문자열을 수행하려면 어떻게 해야 합니까? (0) | 2023.08.22 |
| 오류: 유형이 두 디렉터리에 모두 있습니다. (0) | 2023.08.22 |
| jQuery에서 모든 확인란 찾기 (0) | 2023.08.22 |
| Angular CLI 이미 존재하는 구성 요소에 대한 .spec 파일 생성 (0) | 2023.08.22 |