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

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

박찬성님의 프로필 이미지
박찬성

작성한 질문수

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

컴포넌트 스캔과 자동 의존관계 설정

안녕하세요. MemoryMemberRepository 이부분에서 궁금한게 있습니다.

해결된 질문

작성

·

142

0

영상을 보면서 따라하다가 MemoryMemberRepository 이부분에서 놓쳐서 @Repository 를 입력하지 못하여 넘어갔습니다.

에러가 발생하여 검색으로 찾다가

@Service("MemberRepository") 넣으면된다 라는 글을 보았고 잘 돌아갔습니다.

둘의 차이를 알고싶습니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 박찬성님^^

질문이 @Repository와 @Service의 차이를 물어보시는 것이지요?

스프링은 기본으로 @Component라는 애노테이션이 있습니다. 이 애노테이션이 있으면 스프링이 자동으로 인식해서 스프링 빈으로 등록해줍니다.

@Controller, @Service, @Repository는 코드를 열어보면 내부에 @Component를 가지고 있습니다. 그래서 모두 스프링 빈으로 자동으로 등록됩니다.

여기에 추가로 부가 기능이 있습니다.

@Controller: 스프링 MVC가 컨트롤러로 인식해서 컨트롤러 기능을 제공함

@Service: 사실 부가 기능이 없지만, 개발자들이 비즈니스 로직이 있는 계층이라는 것을 쉽게 이해할 수 있음

@Repository: 데이터베이스 관련 예외를 스프링이 추상화한 일관된 예외로 변환해줌

자세한 내용은 스프링 핵심 원리 - 기본편에서 매우 자세히 설명해드립니다^^

도움이 되셨길 바래요.

박찬성님의 프로필 이미지
박찬성

작성한 질문수

질문하기