Baeldung - @Component vs @Repository and @Service in Spring

sycho·2024년 3월 21일
0

Baeldung - Spring Tutorial

목록 보기
10/14

Baeldung의 이 글을 정리 및 추가 정보를 넣은 글입니다.

1. Introduction

  • 이 글에서는 @Component, @Repository, @Service의 차이에 대해 알아보겠다.

  • 그런데 사실 이 셋의 차이에 대해서 Baeldung - Spring Bean Annotations에 대해서 다 이미 언급을 했다. 그래서 저 글만 참고해도 좋다.

2. Spring Annotations

  • 애플리케이션에는 보통 여러 영역이 있다. 서비스 영역, 전시 영역, 데이터 접근 영역 등등

  • 영역별로 활용하는 bean들이 여러개가 있을 것이고, 해당 bean들은 다른 영역에서는 보통 사용하질 않을 것이다.

  • 이를 표기하는데 사용되는 것이 위 3개의 annotation이다. 그리고 이 annotation들을 기반으로 bean을 찾아서 ApplicationContext에다가 bean들을 저장하는 것을 classpath scanning이라고 한다.

  • classpath scanning이라는 단어가 낯설 수 있는데 사실 @ComponentScan을 기반으로 특정 패키지에서 bean을 탐색하는 과정 자체를 일컫는 말이다. 이에 관해서는 다음 글들에서 다뤘으니 참고 : 1, 2, 3

3. What's Different?

  • 그럼 다 똑같은, bean을 등록하는 annotation인가? 뭐... 맞긴한데 거기서 더 세부적으로 들어가 애플리케이션의 어느 영역에 해당하는 bean인가에 따라 다른 annotation을 사용한다.

3.1 @Component

  • 얘는 Spring에서 관리하는 bean임을 나타낼 때 사용한다. 사실 나머지 2개도 이 annotation을 포함한다. 다만 얘는 그 이상의 특징을 가지지 않지만 다른 2개는 또 다른 특징을 가진다.

3.2 @Repository

3.3 @Service

  • 이전에 얘기했지만 비즈니스 영역과 관련된 bean을 나타낼 때 사용한다. 자세한건 해당 글 참고.
profile
안 흔하고 싶은 개발자. 관심 분야 : 임베디드/컴퓨터 시스템 및 아키텍처/웹/AI

0개의 댓글