1. 멀티 모듈 프로젝트 설정
멀티 모듈 프로젝트를 구성하면 프로젝트를 여러 모듈로 나누어 관리할 수 있습니다. 예를 들어, api와 db 모듈을 각각 만들 수 있습니다.
멀티 모듈 프로젝트 구조
root-project
|-- api
| |-- src
| | |-- main
| | |-- test
| |-- build.gradle
|-- db
| |-- src
| | |-- main
| | |-- test
| |-- build.gradle
|-- settings.gradle
|-- build.gradle
api 모듈에서 db 모듈 사용하기
api 모듈에서 db 모듈의 내용을 사용하려면 api 모듈의 build.gradle 파일에 다음과 같이 설정합니다.
gradle
코드 복사
dependencies { implementation project(':db') }
2. @SuperBuilder와 @EqualsAndHashCode
@SuperBuilder
이 어노테이션은 상속받은 클래스에서 빌더 패턴을 사용하도록 설정합니다. 상속받은 멤버 변수도 빌더로 적용할 수 있습니다.
@EqualsAndHashCode(callSuper = true)
이 어노테이션은 객체 비교 시 부모 클래스의 필드까지 포함하여 비교하도록 설정합니다.
3. 멀티 모듈에서 JPA 설정
멀티 모듈을 사용할 때, 서로 다른 프로젝트에서 한 프로젝트의 빈을 가져오려면 설정이 필요합니다.
JPA 설정 예시
config 패키지에 설정 클래스를 만들어줍니다.
@Configuration
@EntityScan(basePackages = "org.example.db")
@EnableJpaRepositories(basePackages = "org.example.db")
public class JpaConfig {
}
4. 공통 설정
ObjectMapper 설정
ObjectMapper를 설정하여 전역적으로 일관된 JSON 처리를 할 수 있습니다.
@Configuration
public class ObjectMapperConfig {
@Bean
public ObjectMapper objectMapper(){
var objectMapper = new ObjectMapper();
objectMapper.registerModule(new Jdk8Module());
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.setPropertyNamingStrategy(new PropertyNamingStrategies.SnakeCaseStrategy());
return objectMapper;
}
}
5. 스웨거 설정
스웨거는 RESTful API 서비스를 개발하고 문서화하는 데 도움을 줍니다.
사용법
- Maven Repository에서 springdoc을 검색합니다.
- SpringDoc OpenAPI Starter WebMVC UI » 2.2.0의 디펜던시를 복사합니다.
- build.gradle 파일에 추가합니다.
dependencies {
implementation 'org.springdoc:springdoc-openapi-ui:2.2.0'
}
- localhost:8080/swagger-ui/index.html에 접속합니다.
'JAVA > 자바 공부' 카테고리의 다른 글
자바 DB 1:N 관계 어노테이션 적용법 2024-06-23 (0) | 2024.06.23 |
---|---|
자바 로그인 처리(session) 2024-06-23 (0) | 2024.06.23 |
자바 Filter 2024-06-23 (0) | 2024.06.23 |