@Repository

Yuno·2024년 8월 18일
0

Spring Framework 에서 데이터 액세스 계층(DAO, Data Access Object) 에 속하는 클래스에 사용됨. 이 어노테이션은 주로 데이터베이스와의 상호작용을 담당하는 클래스에 붙여지며, Spring이 데이터 액세스 관련 예외를 관리하도록 도와줌

📌 주요 특징

  1. DAO 계층의 역할
  • @Repository 는 데이터베이스나 외부 API와의 직접적인 데이터 액세스를 수행하는 클래스에 사용됨. 이 클래스는 데이터베이스 쿼리를 실행하거나, CRUD(Create, Read, Update, Delete) 작업을 수행함.
  1. Spring의 예외 반환
  • Spring은 @Repository 어노테이션이 붙은 클래스에서 발생하는 데이터베이스 관련 예외를 Spring의 DataAccessException 으로 변환해줌. 이렇게 함으로써 데이터베이스에 종속적인 예외를 추상화하고, 어플리케이션 전반에서 일관된 방식으로 예외를 처리할 수 있게 함.
  1. 자동 빈 등록
  • @Repository 가 붙은 클래스는 Spring의 컴포넌트 스캔(Component Scan) 에 의해 자동으로 빈으로 등록됨. 이로 인해 다른 클래스에서 @Autowired 어노테이션을 사용해 쉽게 주입받아 사용할 수 있음.
  1. 명확한 역할 구분
  • @Component 와 유사하게 빈으로 등록되지만, @Repository 를 사용함으로써 이 클래스가 데이터 액세스 계층에 속한다는 것을 명확히 할 수 있음.
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
	// 기본적인 CRUD 메서드가 JpaRepository 에 의해 제공됨
    // 추가적인 데이터베이스 쿼리 메서드 작성 가능
}

위 예제에서 UserRepository 인터페이스는 @Repository 어노테이션으로 표시되었으며, 이 인터페이스는 Spring Data JPA에 의해 자동으로 구현됨. 이 인터페이스를 통해 데이터베이스의 User 엔티티에 접근하고, 필요한 CRUD 작업을 수행할 수 있음.

profile
Hello World

0개의 댓글