해결된 질문
작성
·
655
1
강사님 코드를 보면 SpringDataJpaMemberRepository.java
클래스에 @Repository가 작성되어 있지 않아요 그런데 스프링 빈으로 등록이 되요 .... 왜 이런건가요 ??
import java.util.List;
import javax.persistence.EntityManager;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Sort;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.QueryByExampleExecutor;
/**
* JPA specific extension of {@link org.springframework.data.repository.Repository}.
*
* @author Oliver Gierke
* @author Christoph Strobl
* @author Mark Paluch
*/
@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T>
@NoRepositoryBean 을 따라가다 보면
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
public @interface NoRepositoryBean {
}
다음과 같이 되어있는데 어느 어노테이션이 스프링빈으로 등록을 시켜주나요 ??
이전강의에서는 @Repository에 속해있는 @Component가 스프링 빈으로 올려준다고 확인했었는데 @NoRepository에는 @Component 없어서 질문드려요 !!
답변 1
4
안녕하세요. me님, 공식 서포터즈 OMG입니다.
눈썰미가 좋으시네요.
JpaRepository 인터페이스의 구현체 클래스인 SimpleJpaRepository가 스프링 빈으로 등록되어 있습니다.
JpaRepository 인터페이스 이구요,
좌측에 I 아래 화살표 누르면 구현 클래스 항목들을 볼수 있습니다.
여기서 SimpleJpaRepository를 보시면,
@Repository 어노테이션이 있으며 해당 어노테이션으로 인해 스프링 빈으로 등록됩니다.
자세한 내용은 영한님의 SpringDataJPA강의를 참고해주세요
감사합니다.
앗 저기에 숨겨두었네요 ㅎㅎㅎㅎ 감사합니다.