[ Spring ] @Repository / @Service / @Controller

2024. 2. 11. 11:51· BACK-END/└ Spring Boot

환경 : Spring Tool Suite4

 

 

 

 

Annotation (어노테이션)

 :  Annotation(어노테이션)은 소스 코드에 메타데이터를 추가하기 위한 것입니다.

- 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 프로그램에게 주석을 주는 것이라고 이해하면 좋습니다. 

- 여기서 메타데이터는 컴파일러, 개발 도구, 런타임 시의 프레임워크에게 특정한 정보를 전달하는 역할을 수행합니다. 

 

- 선언 위치에 따라 3 가지 종류로 나눌 수 있습니다. 

  1. 클래스 어노테이션(Class Annotation):
    • 클래스에 대한 어노테이션으로, 클래스 전체에 대한 정보를 나타냅니다.
    • 예: @Entity, @Service, @Controller
  2. 메서드 어노테이션(Method Annotation):
    • 메서드에 대한 어노테이션으로, 메서드 수행과 관련된 정보를 나타냅니다.
    • 예: @RequestMapping, @Override
  3. 필드 어노테이션(Field Annotation):
    • 클래스의 필드(멤버 변수)에 대한 어노테이션으로, 해당 필드에 대한 정보를 나타냅니다.
    • 예: @Autowired, @SerializedName

 

 

 


@Controller, @Service, @Repository

 

공통점 : 

핸들러가 스캔할 수 있는 Bean 객체가 되어 서블릿용 컨테이너에 생성된다
  = 스프링 빈으로 자동 등록된다.

 

차이점 및 특징 : 

@Controller 컨트롤러, 프레젠테이션 레이어
웹의 요청 및 응답 처리
Dispatcher가 @Controller가 있는 클래스를 확인한 후 @RequestMapping이 있는 메서드들을 확인한 후 합하여 요청 처리
사용 시 해당 클래스가 웹 애플리케이션의 컨트롤러로 식별되어 HTTP 요청을 처리하는 메서드들 정의 가능
사용자에게 보여지는 페이지를 만드는 객체
(페이지 == 컨트롤러)
@Repository 외부 I/O 처리, 퍼시스턴스 레이어
영속성 객체와 관련된 작업 수행
  = 데이터베이스와 관련된 작업 수행하는 DAO(Data Access Object) 클래스를 나타냄
DB와 상호작용, 예외처리 등
@Service 내부에서 자바 로직을 처리, 서비스 레이어
저장소 계층을 사용
@Controller와 @Repository가 아닌 경우 대부분 @Service가 사용됨

 

 

 

 

 

 

 

 

 

 

(어노테이션을 더 잘 이해하기 위해 추천) 스프링 컨테이너 구조와 Bean : https://codevang.tistory.com/258

자바 어노테이션에 대해 참고한 사이트 : https://ittrue.tistory.com/156

 

 

개인 공부 기록용입니다:)

여러 블로그, 티스토리 등을 참고하였습니다.

728x90