inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 데이터 JPA

SpingConfig가 궁금합니다!

521

조성훈

작성한 질문수 1

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

강의 중 SpingConfig 클래스의 작동방식이 궁금해서 질문 올립니다!

  1. @Autowired 아래 생성자에 매개변수에는 bean에 있는 객체이거나 @Service, @Repository 등의 아래의 인스턴스가 들어가는 것 아니었나요?

  2. SpringConfig 생성자의 매개변수에 MemberRepository를 구현한 JpaMemberRepository의 인스턴스가 들어가야하는 것으로 알고있습니다.

    어떠한 구조로 스프링 컨테이너가 JpaMemberRepository의 인스턴스를 넣어서 호출해주는 것인지 궁금합니다!!

+찾아보던 중 스프링 데이터 JPA는 JpaRepository와 같은 인터페이스를 상속받은 인터페이스를 스캔하여 자동으로 빈으로 등록한다는 사실을 확인하였습니다

 

 

 

 

 

java spring mvc spring-boot

답변 2

0

김영한

안녕하세요. 성훈님

AI 인턴이 적절하게 답변을 해주었는데요.

더 자세한 내용은 스프링 프레임워크 자체를 더 깊이있게 알아야 이해할 수 있습니다.

스프링 프레임워크에 대한 더 자세한 내용은 로드맵의 다음 강의인 스프링 핵심 원리 - 기본편 강의를 참고해주세요.

감사합니다.

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

조성훈님 질문에 답변 드리겠습니다.

  1. @Autowired는 스프링이 제어의 역전(IoC)을 통하여 해당 타입의 빈을 자동으로 주입하도록 하는 어노테이션입니다. 생성자 주입 방식에서 @Autowired 어노테이션 밑에 오는 생성자의 매개변수는 스프링 컨테이너에 의해 관리되는 빈(bean)이어야 합니다. 따라서 @Service, @Repository 등으로 어노테이션된 클래스의 인스턴스라면 스프링 컨테이너에 등록되어 관리되므로 생성자의 매개변수로 사용될 수 있습니다.

  2. SpringConfig 생성자의 매개변수로 MemberRepository 인터페이스의 구현체가 들어가는 것은 맞습니다. 스프링 컨테이너는 @Configuration 어노테이션이 붙은 SpringConfig 클래스를 설정 정보로 사용하여 빈(bean)을 생성하고, 컴포넌트 스캔을 통해 @Repository, @Service, @Controller 등이 붙은 클래스들을 찾아 빈으로 등록합니다. JpaMemberRepository가 MemberRepository 인터페이스를 구현하고 있고 @Repository 등으로 어노테이션되어 있다면, 스프링 데이터 JPA가 해당 인터페이스 구현체를 자동으로 프록시 객체로 생성하여 빈으로 등록합니다. 그리고 이를 생성자 주입을 통해 SpringConfig에 주입합니다.

  • 맞습니다, 스프링 데이터 JPA는 JpaRepository와 같은 인터페이스를 상속받은 인터페이스에 대해서 구현체 없이도 스프링이 자동으로 구현 객체를 생성하여 빈으로 등록하고 관리합니다. 이 기능을 통해 데이터 접근 계층의 구현을 훨씬 간단하게 할 수 있습니다.

강의 내용과 더 자세한 설정 방법은 제공된 지식공유자 김영한님의 인프런 스프링, JPA 강의 자료에서 “스프링 부트 3.0 > Querydsl 부트 2.x 설정” 부분을 참조하시기 바랍니다.

https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.d186zd5swpfg

도움이 되셨기를 바랍니다. 추가 질문이 있으면 언제든지 문의해주세요.

..

0

76

2

Unused property.....

0

102

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

83

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

104

2

윈도우 build test오류 질문

1

103

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

101

2

테스트 실행 시 에러 질문

0

292

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

168

1

@PostMapping("/members/new")가 동작하지 않습니다

0

90

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

127

1

소요 시간

0

87

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

183

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

157

2

index.html Welcome page

0

125

1

프로젝트 gradle-groovy ?

0

370

1

테스트코드 메서드명 한글

0

202

2