diff --git a/src/main/java/flipnote/user/infrastructure/config/AppConfig.java b/src/main/java/flipnote/user/infrastructure/config/AppConfig.java index 90b7f0d..91213ef 100644 --- a/src/main/java/flipnote/user/infrastructure/config/AppConfig.java +++ b/src/main/java/flipnote/user/infrastructure/config/AppConfig.java @@ -1,5 +1,10 @@ package flipnote.user.infrastructure.config; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.Executor; + +import org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -7,29 +12,40 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.client.RestClient; -import java.util.concurrent.Executor; +import tools.jackson.databind.ext.javatime.ser.LocalDateTimeSerializer; +import tools.jackson.databind.module.SimpleModule; @Configuration public class AppConfig { - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public RestClient restClient() { - return RestClient.create(); - } - - @Bean(name = "taskExecutor") - public Executor taskExecutor() { - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(4); - executor.setMaxPoolSize(16); - executor.setQueueCapacity(100); - executor.setThreadNamePrefix("async-"); - executor.initialize(); - return executor; - } + @Bean + public JsonMapperBuilderCustomizer jacksonCustomizer() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return builder -> { + SimpleModule module = new SimpleModule(); + module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter)); + builder.addModule(module); + }; + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Bean + public RestClient restClient() { + return RestClient.create(); + } + + @Bean(name = "taskExecutor") + public Executor taskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(4); + executor.setMaxPoolSize(16); + executor.setQueueCapacity(100); + executor.setThreadNamePrefix("async-"); + executor.initialize(); + return executor; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8ed9735..4525aea 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,10 +2,6 @@ spring: application: name: user - jackson: - date-format: yyyy-MM-dd HH:mm:ss - serialization: - write-dates-as-timestamps: false datasource: url: ${DB_URL:jdbc:mysql://localhost:3306/flipnote_user}