인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

celinaym0810님의 프로필 이미지
celinaym0810

작성한 질문수

스프링 핵심 원리 - 기본편

롬복과 최신 트랜드

@autowired, @bean

작성

·

313

1

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

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

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

[질문 내용]
안녕하세요. DI 관련해서 질문이 있어 여쭤봅니다. Lombok을 추가해서 중복된 코드를 제거하는 부분까지 봤는데 궁금한 점이 아직도 풀리지 않아 질문드립니다. 스프링 데이터 JPA를 사용해서 프로젝트를 하는데 repo에는 extends JPArepository<entity, pk>를 추가하였고 domain에는 @Entity, @Getter, @Setter,@NoArgsContrustor를, service에는 @Service, @RequiredArgsContructor를, controller에는 @RestController, @RequiredArgsController를, repository에는 아무런 annotation을 심어놓지 않았습니다. 강의를 들어봤을 때 스피링 JPA에서는 DI를 하려면 a) config를 만들고 @Bean을 따로 등록하거나, b) 이 방법을 사용하지 않으려면 @component, @autowired를 같이 쓰는 방법이 있다는 것으로 이해를 했습니다. 하지만 저는 repository에는 @repository라는 annotation을 붙이지 않았으며, 따로 bean을 등록하지 않고 도메인, 서비스, 컨트롤러에 @component annotation만 넣고 @autowired는 사용하지 않았습니다. 그런데 원하는 결과값이 나와 어느 부분에서 DI가 실현된건지 궁금합니다.

답변 1

1

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

스프링 데이터JPA 공통인터페이스 구현체인 SimpleJpaRepository에 @Repository가 있어 스프링 빈으로 등록되기 때문에 가능한 것으로 이해하시면 됩니다.

직접 코드를 찾아가서 확인해보시면 좋을 것 같아요 ^^

imageimage

image

자세한 내용은 영한님의 SpringDataJPA강의를 참고해주세요 :)
.
감사합니다.

celinaym0810님의 프로필 이미지
celinaym0810

작성한 질문수

질문하기