[ Spring ] @Repository / @Service / @Controller
2024. 2. 11. 11:51ㆍ· BACK-END/└ Spring Boot
환경 : Spring Tool Suite4
Annotation (어노테이션)
: Annotation(어노테이션)은 소스 코드에 메타데이터를 추가하기 위한 것입니다.
- 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 프로그램에게 주석을 주는 것이라고 이해하면 좋습니다.
- 여기서 메타데이터는 컴파일러, 개발 도구, 런타임 시의 프레임워크에게 특정한 정보를 전달하는 역할을 수행합니다.
- 선언 위치에 따라 3 가지 종류로 나눌 수 있습니다.
- 클래스 어노테이션(Class Annotation):
- 클래스에 대한 어노테이션으로, 클래스 전체에 대한 정보를 나타냅니다.
- 예: @Entity, @Service, @Controller
- 메서드 어노테이션(Method Annotation):
- 메서드에 대한 어노테이션으로, 메서드 수행과 관련된 정보를 나타냅니다.
- 예: @RequestMapping, @Override
- 필드 어노테이션(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
'· BACK-END > └ Spring Boot' 카테고리의 다른 글
[ Spring ] @Autowired Annotation (0) | 2024.02.14 |
---|---|
[ Spring ] @Controller와 @RestController의 차이 (0) | 2024.02.12 |
[ Database / Spring ] 데이터베이스 연동하기 및 파라미터를 통해 데이터 삽입해보기 (0) | 2024.02.09 |
[ Spring Boot ] 프로젝트 실행 오류 : java.lang.ClassNotFoundException: (0) | 2024.02.08 |
[ Spring / Java ] 변수 값을 파라미터로 입력 받아 출력하기 (2) | 2024.02.01 |