강의

멘토링

커뮤니티

Inflearn Community Q&A

111dmsco5980's profile image
111dmsco5980

asked

Spring for Beginners - Learn Spring Boot, Web MVC, and DB Access Technology with Code

Spring Data JPA

Spring Data JPA를 통해 Spring Bean이 등록되는 과정

Resolved

Written on

·

1.1K

0

 

public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {

Optional<Member> findByName(String name);

}

인터페이스가 JpaRepository를 상속받고 있으면, Spring이 알아서 구현체를 만들어서 Spring Bean으로 등록

(아직 스캔은 하지않아서 등록은 안된 상태)

 

@Configuration
public class SpringConfig {

private final MemberRepository memberRepository;

@Autowired
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}

@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}

}

@Autowired를 보고 Spring이 해당되는  SpringDataJpaMemberRepository로 가서 SpringDataJpaMemberRepository을 통해 만든 구현체를 Spring Bean으로 등록

 

>>이렇게 이해하면 될까요? 검색해보니 Proxy 객체 등 이해하기 어려운 용어들이 나와 질문 드립니다..

 

javaspringMVCspring-boot

Answer 1

1

안녕하세요. 김은채님, 공식 서포터즈 OMG입니다.

 

JpaRepository는 SimpleJpaRepository클래스를 구현하는데, 해당 클래스가 스프링 빈으로 등록됩니다.

해당 내용은 영한님의 SpringDataJPA강의에서 영한님이 자세히 설명해주십니다. 


@Autowired가 붙은 곳에 스프링 컨테이너가 같은 타입의 빈을 주입해주도록 동작합니다.

빈으로 등록되는 것은 @Bean이 붙거나, @Configuration, @Component, @Controller,Service,Repository 가 붙어야 빈으로 등록됩니다.

자세한 내용은 스프링 핵심원리 강의를 참고해주세요 :)


감사합니다.

111dmsco5980님의 프로필 이미지
111dmsco5980
Questioner

답변 감사합니다!!

111dmsco5980's profile image
111dmsco5980

asked

Ask a question