Spring Data JPA - DomainClass Converter

Spring Data JPA

백기선님의 강의인 Spring Data JPA 강의를 듣고 공부한 내용을 정리한 글

DomainClassConverter

Spring Data Common에서 Web을 위해 제공되는 기능인 DomainClassConverter가 존재한다.

이 Converter 자체는 스프링 프레임워크에서 제공하는 기능이다.

DomainClassConverter는 다음과 같은 요청을 처리할 수 있는데,

@GetMapping("/posts/{id}")
fun getPost(@PathVariable("id") post:Post):String {
    return post.title()
}

PathVariable의 이름과 타입(기본적으론 Primitive)이 같지않더라도 DomainClassConverter가 알아서 Post 클래스의 id에 해당하는 객체를 찾아서 해당 객체에 매핑시켜주게 된다. (놀라운 기술)

Formatter

Formatter와 Converter는 매우 유사한데 Formatter의 경우 문자열이다.

그래서 Formatter는 String을 어떻게 다른 타입으로 변환할 것인가에 대한 것이다.

사실 Formatter가 조금 더 웹에서 사용하기 적합하다.

Formatter의 관심사는 문자열을 기반으로 어떻게 변환할 것인가에 대한 것이다.

여기서 우리의 예제가 Formatter가 아닌 Converter가 쓰인 이유는 String 타입이 아닌 Long 타입의 id를 사용했기 때문이다.

Reference

인프런 백기선님의 스프링 Data JPA



© 2022. by minkuk

Powered by minkuk