해결된 질문
작성
·
142
0
영상을 보면서 따라하다가 MemoryMemberRepository 이부분에서 놓쳐서 @Repository 를 입력하지 못하여 넘어갔습니다.
에러가 발생하여 검색으로 찾다가
@Service("MemberRepository") 넣으면된다 라는 글을 보았고 잘 돌아갔습니다.
둘의 차이를 알고싶습니다.
답변 1
0
안녕하세요. 박찬성님^^
질문이 @Repository와 @Service의 차이를 물어보시는 것이지요?
스프링은 기본으로 @Component라는 애노테이션이 있습니다. 이 애노테이션이 있으면 스프링이 자동으로 인식해서 스프링 빈으로 등록해줍니다.
@Controller, @Service, @Repository는 코드를 열어보면 내부에 @Component를 가지고 있습니다. 그래서 모두 스프링 빈으로 자동으로 등록됩니다.
여기에 추가로 부가 기능이 있습니다.
@Controller: 스프링 MVC가 컨트롤러로 인식해서 컨트롤러 기능을 제공함
@Service: 사실 부가 기능이 없지만, 개발자들이 비즈니스 로직이 있는 계층이라는 것을 쉽게 이해할 수 있음
@Repository: 데이터베이스 관련 예외를 스프링이 추상화한 일관된 예외로 변환해줌
자세한 내용은 스프링 핵심 원리 - 기본편에서 매우 자세히 설명해드립니다^^
도움이 되셨길 바래요.