generated from pricelees/issue-pr-template
42 lines
1.5 KiB
Kotlin
42 lines
1.5 KiB
Kotlin
package roomescape.common.config
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
|
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
|
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer
|
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
|
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
|
|
import com.fasterxml.jackson.module.kotlin.kotlinModule
|
|
import org.springframework.context.annotation.Bean
|
|
import org.springframework.context.annotation.Configuration
|
|
import java.time.LocalDate
|
|
import java.time.LocalTime
|
|
import java.time.format.DateTimeFormatter
|
|
|
|
@Configuration
|
|
class JacksonConfig {
|
|
|
|
@Bean
|
|
fun objectMapper(): ObjectMapper = ObjectMapper()
|
|
.registerModule(javaTimeModule())
|
|
.registerModule(kotlinModule())
|
|
|
|
private fun javaTimeModule(): JavaTimeModule = JavaTimeModule()
|
|
.addSerializer(
|
|
LocalDate::class.java,
|
|
LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE)
|
|
)
|
|
.addDeserializer(
|
|
LocalDate::class.java,
|
|
LocalDateDeserializer(DateTimeFormatter.ISO_LOCAL_DATE)
|
|
)
|
|
.addSerializer(
|
|
LocalTime::class.java,
|
|
LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm"))
|
|
)
|
|
.addDeserializer(
|
|
LocalTime::class.java,
|
|
LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm"))
|
|
) as JavaTimeModule
|
|
}
|