Preloader image
DDD

자바

구분 - @Mapper, @Repository, @Data

작성자 관리자 (admin)
조회수 250
입력일 2023-05-15 08:41:40

Spring Boot에서 @Mapper, @Repository, @Data는 모두 Spring Framework에서 제공하는 어노테이션입니다.

  • @Mapper
    MyBatis와 같은 ORM 프레임워크를 사용할 때, Mapper 인터페이스에 대한 구현체를 자동으로 생성해주는 역할을 합니다. 이를 위해 MyBatis의 MapperScan 어노테이션과 함께 사용됩니다.

  • @Repository
    DAO(Data Access Object) 클래스에 붙이는 어노테이션으로, 데이터베이스와 연동하는 클래스에서 사용됩니다. 이 어노테이션을 사용하면 Spring이 DAO 객체를 생성하고, 데이터베이스 연동에 필요한 예외 처리 등을 자동으로 처리해줍니다.

  • @Data
    Lombok 라이브러리에서 제공하는 어노테이션으로, 자동으로 Getter, Setter, toString, equals, hashCode 등을 생성해줍니다. 이를 통해 클래스를 작성할 때 보다 간단하고 간결한 코드를 작성할 수 있습니다.

    (추천)
    extends 를 사용하는 경우
    @EqualsAndHashCode(callSuper=true)
    와 함께 사용해야합니다. (속성을 위임할지 하지 않을지)

이 세 가지 어노테이션은 모두 Spring Boot에서 코드 작성을 간소화하고, 개발자가 직접 작성해야 하는 반복적인 코드를 최소화하며, 코드의 가독성과 유지보수성을 높여주는 역할을 합니다. 하지만 이러한 어노테이션을 사용할 때에는 사용하는 컴포넌트와 어떻게 상호작용하는지에 대해 충분히 이해하고 사용해야 합니다.

^