[JAVA-26374-boot-data] Moved "Spring Boot: Customize the Jackson ObjectMapper" article to spring-boot-data (#15095)

This commit is contained in:
panos-kakos 2023-10-29 18:54:02 +02:00 committed by GitHub
parent 346350db14
commit 05230cf79d
18 changed files with 40 additions and 29 deletions

View File

@ -1,7 +1,6 @@
### Relevant Articles: ### Relevant Articles:
- [HttpMessageNotWritableException: No Converter for [class …] With Preset Content-Type](https://www.baeldung.com/spring-no-converter-with-preset) - [HttpMessageNotWritableException: No Converter for [class …] With Preset Content-Type](https://www.baeldung.com/spring-no-converter-with-preset)
- [Spring Boot: Customize the Jackson ObjectMapper](https://www.baeldung.com/spring-boot-customize-jackson-objectmapper)
- [“HttpMessageNotWritableException: No converter found for return value of type”](https://www.baeldung.com/spring-no-converter-found) - [“HttpMessageNotWritableException: No converter found for return value of type”](https://www.baeldung.com/spring-no-converter-found)
- [Creating a Read-Only Repository with Spring Data](https://www.baeldung.com/spring-data-read-only-repository) - [Creating a Read-Only Repository with Spring Data](https://www.baeldung.com/spring-data-read-only-repository)
- [Using JaVers for Data Model Auditing in Spring Data](https://www.baeldung.com/spring-data-javers-audit) - [Using JaVers for Data Model Auditing in Spring Data](https://www.baeldung.com/spring-data-javers-audit)

View File

@ -11,4 +11,5 @@ This module contains articles about Spring Boot with Spring Data
- [Spring Custom Property Editor](https://www.baeldung.com/spring-mvc-custom-property-editor) - [Spring Custom Property Editor](https://www.baeldung.com/spring-mvc-custom-property-editor)
- [Using @JsonComponent in Spring Boot](https://www.baeldung.com/spring-boot-jsoncomponent) - [Using @JsonComponent in Spring Boot](https://www.baeldung.com/spring-boot-jsoncomponent)
- [Guide To Running Logic on Startup in Spring](https://www.baeldung.com/running-setup-logic-on-startup-in-spring) - [Guide To Running Logic on Startup in Spring](https://www.baeldung.com/running-setup-logic-on-startup-in-spring)
- [Spring Boot: Customize the Jackson ObjectMapper](https://www.baeldung.com/spring-boot-customize-jackson-objectmapper)

View File

@ -1,10 +1,10 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
public class CoffeeConstants { public class CoffeeConstants {
public static final String DATETIME_FORMAT = "dd-MM-yyyy HH:mm"; public static final String DATETIME_FORMAT = "dd-MM-yyyy HH:mm";

View File

@ -1,11 +1,12 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.annotation.JsonInclude; import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER; import com.fasterxml.jackson.annotation.JsonInclude;
@Configuration @Configuration
public class CoffeeCustomizerConfig { public class CoffeeCustomizerConfig {

View File

@ -1,12 +1,13 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.annotation.JsonInclude; import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER; import com.fasterxml.jackson.annotation.JsonInclude;
@Configuration @Configuration
public class CoffeeHttpConverterConfiguration { public class CoffeeHttpConverterConfiguration {

View File

@ -1,12 +1,13 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.annotation.JsonInclude; import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER; import com.fasterxml.jackson.annotation.JsonInclude;
@Configuration @Configuration
public class CoffeeJacksonBuilderConfig { public class CoffeeJacksonBuilderConfig {

View File

@ -1,13 +1,14 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.annotation.JsonInclude; import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@Configuration @Configuration
public class CoffeeObjectMapperConfig { public class CoffeeObjectMapperConfig {

View File

@ -1,19 +1,19 @@
package com.baeldung.boot.jackson.config; package com.baeldung.boot.jackson.config;
import com.fasterxml.jackson.databind.Module; import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySource;
import static com.baeldung.boot.jackson.config.CoffeeConstants.LOCAL_DATETIME_SERIALIZER; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@Configuration @Configuration
@PropertySource("classpath:coffee.properties") @PropertySource("classpath:coffee.properties")
public class CoffeeRegisterModuleConfig { public class CoffeeRegisterModuleConfig {
@Bean @Bean
public Module javaTimeModule() { public JavaTimeModule javaTimeModule() {
JavaTimeModule module = new JavaTimeModule(); JavaTimeModule module = new JavaTimeModule();
module.addSerializer(LOCAL_DATETIME_SERIALIZER); module.addSerializer(LOCAL_DATETIME_SERIALIZER);
return module; return module;

View File

@ -1,11 +1,12 @@
package com.baeldung.boot.jackson.controller; package com.baeldung.boot.jackson.controller;
import com.baeldung.boot.jackson.model.Coffee; import static com.baeldung.boot.jackson.config.CoffeeConstants.FIXED_DATE;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import static com.baeldung.boot.jackson.config.CoffeeConstants.FIXED_DATE; import com.baeldung.boot.jackson.model.Coffee;
@RestController @RestController
public class CoffeeController { public class CoffeeController {

View File

@ -1,15 +1,16 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeConstants; import static com.baeldung.boot.jackson.config.CoffeeConstants.FIXED_DATE;
import static org.assertj.core.api.Assertions.assertThat;
import java.time.format.DateTimeFormatter;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.test.web.client.TestRestTemplate;
import java.time.format.DateTimeFormatter; import com.baeldung.boot.jackson.config.CoffeeConstants;
import static com.baeldung.boot.jackson.config.CoffeeConstants.FIXED_DATE;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public abstract class AbstractCoffeeIntegrationTest { public abstract class AbstractCoffeeIntegrationTest {

View File

@ -1,8 +1,9 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeCustomizerConfig;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import com.baeldung.boot.jackson.config.CoffeeCustomizerConfig;
@Import(CoffeeCustomizerConfig.class) @Import(CoffeeCustomizerConfig.class)
public class CoffeeCustomizerIntegrationTest extends AbstractCoffeeIntegrationTest { public class CoffeeCustomizerIntegrationTest extends AbstractCoffeeIntegrationTest {
} }

View File

@ -1,8 +1,9 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeHttpConverterConfiguration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import com.baeldung.boot.jackson.config.CoffeeHttpConverterConfiguration;
@Import(CoffeeHttpConverterConfiguration.class) @Import(CoffeeHttpConverterConfiguration.class)
public class CoffeeHttpConverterIntegrationTest extends AbstractCoffeeIntegrationTest { public class CoffeeHttpConverterIntegrationTest extends AbstractCoffeeIntegrationTest {
} }

View File

@ -1,8 +1,9 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeJacksonBuilderConfig;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import com.baeldung.boot.jackson.config.CoffeeJacksonBuilderConfig;
@Import(CoffeeJacksonBuilderConfig.class) @Import(CoffeeJacksonBuilderConfig.class)
public class CoffeeJacksonBuilderIntegrationTest extends AbstractCoffeeIntegrationTest { public class CoffeeJacksonBuilderIntegrationTest extends AbstractCoffeeIntegrationTest {
} }

View File

@ -1,8 +1,9 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeObjectMapperConfig;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import com.baeldung.boot.jackson.config.CoffeeObjectMapperConfig;
@Import(CoffeeObjectMapperConfig.class) @Import(CoffeeObjectMapperConfig.class)
public class CoffeeObjectMapperIntegrationTest extends AbstractCoffeeIntegrationTest { public class CoffeeObjectMapperIntegrationTest extends AbstractCoffeeIntegrationTest {
} }

View File

@ -1,8 +1,9 @@
package com.baeldung.boot.jackson.app; package com.baeldung.boot.jackson.app;
import com.baeldung.boot.jackson.config.CoffeeRegisterModuleConfig;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import com.baeldung.boot.jackson.config.CoffeeRegisterModuleConfig;
@Import(CoffeeRegisterModuleConfig.class) @Import(CoffeeRegisterModuleConfig.class)
public class CoffeeRegisterModuleIntegrationTest extends AbstractCoffeeIntegrationTest { public class CoffeeRegisterModuleIntegrationTest extends AbstractCoffeeIntegrationTest {
} }