[SPRING] 세계적으로 봄에 잭슨을 구성하는 방법은 무엇입니까?
SPRING세계적으로 봄에 잭슨을 구성하는 방법은 무엇입니까?
deserialize 객체를 직렬화하려면 Jackson을 흐름으로 사용하고 있습니다.
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate openingDate
어떻게 이것을 모든 속성에 추가 할 필요가 없도록 전역으로 기본값으로 설정합니까?
XML 구성 사용.
해결법
-
==============================
1.Java 기반 구성을 사용하는 경우 WebMvcConfigurerAdapter를 확장하는 구성 클래스를 만들고 다음을 수행 할 수 있습니다.
Java 기반 구성을 사용하는 경우 WebMvcConfigurerAdapter를 확장하는 구성 클래스를 만들고 다음을 수행 할 수 있습니다.
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); final ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); converter.setObjectMapper(objectMapper); converters.add(converter); super.configureMessageConverters(converters); }
여기서는 ObjectMapper를 원하는대로 구성하고 변환기로 설정할 수 있습니다.
-
==============================
2.Spring Jackson2ObjectMapperFactoryBean에서 serializer를 구성하고 (완전한 클래스 이름을 제공), MappingJackson2HttpMessageConverter와 바인딩 할 수 있습니다. 다음은 XML 구성 스 니펫의 예입니다.
Spring Jackson2ObjectMapperFactoryBean에서 serializer를 구성하고 (완전한 클래스 이름을 제공), MappingJackson2HttpMessageConverter와 바인딩 할 수 있습니다. 다음은 XML 구성 스 니펫의 예입니다.
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.web.context.support.Jackson2ObjectMapperFactoryBean" p:failOnEmptyBeans="false" p:indentOutput="true"> <property name="serializers"> <array> <bean class="LocalDateSerializer" /> </array> </property> </bean> </property> </bean>
문서에 대한 링크
-
==============================
3.자네는 java datetime이나 jodatime과 같은 것들을 사용하기위한 모듈을 설치할 수있다. 이것 체크 아웃 :
자네는 java datetime이나 jodatime과 같은 것들을 사용하기위한 모듈을 설치할 수있다. 이것 체크 아웃 :
@Bean Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() { JavaTimeModule module = new JavaTimeModule(); module.addSerializer(OffsetDateTime.class, JSR310DateTimeSerializer.INSTANCE); module.addSerializer(ZonedDateTime.class, JSR310DateTimeSerializer.INSTANCE); module.addSerializer(LocalDateTime.class, JSR310DateTimeSerializer.INSTANCE); module.addSerializer(Instant.class, JSR310DateTimeSerializer.INSTANCE); module.addDeserializer(LocalDate.class, JSR310LocalDateDeserializer.INSTANCE); return new Jackson2ObjectMapperBuilder() .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .findModulesViaServiceLoader(true) .modulesToInstall(module); }
-
==============================
4.Spring Boot를 사용하면 새로운 Module을 등록함으로써이를 달성 할 수 있습니다.
Spring Boot를 사용하면 새로운 Module을 등록함으로써이를 달성 할 수 있습니다.
@Configuration public class AppConfig { @Bean public Module module() { SimpleModule module = new SimpleModule("Module", new Version(1, 0, 0, null, null, null)); module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer()); module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer()); return module; } }
여기에 설명 된대로
그리고 여기:
from https://stackoverflow.com/questions/37492249/how-to-configure-jackson-with-spring-globally by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] [단순 유형, 클래스 java.time.LocalDate 유형의 값을 인스턴스화 할 수 없습니다. (0) | 2019.05.14 |
---|---|
[SPRING] Spring에 스프링 게으른 프록시 팩토리가 있습니까? (0) | 2019.05.14 |
[SPRING] Ubuntu 기반 Linux에 SIGAR을 설치하는 방법은 무엇입니까? (0) | 2019.05.14 |
[SPRING] responsebody와 spring prefixjson (0) | 2019.05.14 |
[SPRING] JSESSIONID 쿠키를 제거 할 수 없습니다. (0) | 2019.05.14 |