κ·Έλλ€ λ©ν° λͺ¨λ νλ‘μ νΈ
μλ νμΈμ Mambo μ λλ€.
μ€λμ κ·Έλλ€ λ©ν° λͺ¨λ νλ‘μ νΈμ λνλμ 곡μ μ λνμ¬ μ΄μΌκΈ° ν΄λ³΄λ €κ³ ν©λλ€.
κ·Έλλ€ λ©ν° λͺ¨λ
μλΉμ€μ κ·λͺ¨κ° μ΄λμ λ 컀μ§κ²λλ©΄ λͺ¨λ리μ μν€ν μ²λ‘μ¨ μλΉμ€μ λν λͺ¨λ κΈ°λ₯μ΄ νλμ μ ν리μΌμ΄μ μ ꡬννλ κ²μ λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²λ₯Ό μ°Έκ³ νμ¬ μΌλΆ κΈ°λ₯μ μννλ λ³λμ μ ν리μΌμ΄μ λ‘ λ 립μν€κΈ°λ ν©λλ€. νμ¬ λ€λκ³ μλ νμ¬μμλ λͺ¨λ리μ μν€ν μ²λ‘ κ°λ°νκ³ μλ μ ν리μΌμ΄μ μ μ¬λ¬ κ³ κ°λ€μ νκ²½μ λ§λ λ°°ν¬ λλ λ³λμ 컀μ€ν κΈ°λ₯μ μ§μνκΈ° μνμ¬ κ·Έλλ€ λ©ν° λͺ¨λ νλ‘μ νΈλ‘ μ ννμμ΅λλ€.
Java λΌμ΄λΈλ¬λ¦¬ νλ¬κ·ΈμΈ
κ³΅μ© λͺ¨λμμ μ¬μ©νλ λνλμλ₯Ό μμ λͺ¨λμμλ μ¬μ©νκΈ° μν΄μλ μλ° νλ¬κ·ΈμΈ λμ μλ° λΌμ΄λΈλ¬λ¦¬ νλ¬κ·ΈμΈμ μ μ©νκ³ api
λ₯Ό μ¬μ©νμ¬ μ§μ λ λνλμλ₯Ό μΈλΆ λͺ¨λμ μ»΄νμΌ ν΄λμ€ν¨μ€μ λ
ΈμΆμμΌμΌν©λλ€. Gradle 7 λΆν°λ compile
μ μ§μνμ§ μμΌλ©° implementation
μ μ§μ ν λνλμλ₯Ό μΈλΆ λͺ¨λμ λ
ΈμΆμν€μ§ μμ΅λλ€.
The compile and runtime configurations have been removed with Gradle 7.0. Please refer to the upgrade guide how to migrate to implementation and api configurations`.
// module-common/build.gradle
plugins {
id 'java-library'
id 'io.spring.dependency-management'
}
dependencies {
api 'com.google.code.gson:gson'
}
common λͺ¨λμ gson λΌμ΄λΈλ¬λ¦¬λ apiλ₯Ό ν΅ν΄ μμ λͺ¨λμ ν΄λμ€ν¨μ€μ λ ΈμΆλμ΄ μμ λͺ¨λμμλ μ¬μ©μ΄ κ°λ₯ν΄μ§λλ€. κΈ°λ³Έμ μΌλ‘ implementationμ μ¬μ©νλ κ²½μ° μΈλΆ λͺ¨λ ν΄λμ€ν¨μ€μ λ ΈμΆμν€μ§ μλ μ΄μ λ λΉ λ₯Έ μ»΄νμΌκ³Ό ν΄λμ€ν¨μ€ μ¬μ΄μ¦λ₯Ό μ€μ΄κΈ° μν¨μ΄λ©° api 보λ€λ implementationμ μ νΈν΄μΌνλ€κ³ ν©λλ€.
Common Module
gradle-multi-module μ²λΌ κ·Έλλ€ λ©ν° λͺ¨λ νλ‘μ νΈμ 곡μ©μΌλ‘ μ μ©λλ μ½λλ₯Ό κ°μ§λ Common λͺ¨λμ΄ μμλ λ€μκ³Ό κ°μ΄ 곡ν΅μΌλ‘ μ μ©λμ΄μΌνλ μ€μ μ μνν μ μμ΅λλ€.
@Configuration(proxyBeanMethods = false)
public class JsonConfig {
@Bean
public Jackson2ObjectMapperBuilderCustomizer objectMapperBuilderCustomizer() {
return builder -> builder
.featuresToEnable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.featuresToDisable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS)
.modules(List.of(new Jdk8Module(), new JavaTimeModule()));
}
}
μ μ½λμμλ Date λλ Timestampμ κ°μ ν΄λμ€μ λνμ¬ Long κ°μΌλ‘ λ³ννλ κΈ°λ₯μ νμ±ννκΈ° μνμ¬ SerializationFeature.WRITE_DATES_AS_TIMESTAMPSλ₯Ό μ μ©νμμ΅λλ€.
Common Dependencies
plugins {
id 'java-library'
}
dependencies {
api 'org.springframework.boot:spring-boot-starter-security'
api 'com.google.code.gson:gson'
api 'com.fasterxml.jackson.core:jackson-databind'
api 'org.hibernate.validator:hibernate-validator'
api 'org.apache.commons:commons-lang3'
api 'org.apache.commons:commons-collections4:4.4'
api 'com.google.guava:guava:31.0.1-jre'
}
μ μ€μ μ²λΌ implementation λμ μ apiλ₯Ό μ¬μ©νλ©΄ λμΌν λ²μ μ λνλμλ₯Ό λ€λ₯Έ μΈλΆ λͺ¨λμμλ μ¬μ©ν μ μλλ‘ ν΄λμ€ν¨μ€μ λ ΈμΆν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ° λͺ¨λμμ μ¬μ©λλ λνλμ λ²μ μ΄ λ¬λΌμ λ°μν μ μλ λ¬Έμ λ₯Ό λ°©μ§ν μ μκ² λ©λλ€.