Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- list중복제거
- awsconsole
- Annotation
- PostgreSQL
- 리스트비교
- ansible
- 3tierarchitecture
- 중복제거
- wordpress블로그
- anymatch메서드
- AWS
- Spring
- lightsail
- 리스트합집합
- db
- enum
- 리스트교집합
- WordPress
- enumtype
- instance생성
- hashset
- 리스트차집합
- route53
- string_agg()
- mybatis
- 널포인터에러
- 권한정책
- Java
- 두개리스트비교
- 지옥같은git
Archives
- Today
- Total
Anyway
[Spring] 스테레오 어노테이션(Stereotype Annotation) 본문
🤔 현재 spirng boot로 개발하고 있는데 이전 spring 개발했을 때에 비해 못 보던 어노테이션도 많아지고 Bean 관련해서도 그냥 갖다 써보기만 했지 막상 개념을 들여다보니 정리할 필요가 있어 쓰게 됐다.
[Stereotype Annotation이란?]
스테레오 타입 어노테이션은 스프링 프레임워크에서 특정 역할을 가진 클래스를 나타내기 위해 사용하는 어노테이션을 말한다.
익숙한 @Controller, @Service, @Repository, @Component가 바로 스테레오 타입의 어노테이션들이다.
Spring의 Component Scan 단계에서 자동으로 Bean으로 등록되며 해당 클래스의 역할에 따라 구분된다.
[Stereotype Annotation의 목적]
- 역할 명확화 :
각 클래스의 역할을 명확히 하여 애플리케이션의 구조를 이해하기 쉽게 만든다. - 컴포넌트 스캔 :
스프링의 컴포넌트 스캔을 통해 클래스들이 자동으로 스프링 컨테이너에 등록되도록 한다. - 빈 관리 :
스프링이 해당 클래스의 객체를 빈으로 관리하고 필요 시 의존성 주입을 통해 다른 빈과 연결할 수 있도록 지원한다.
Stereotype Annotation인 @Controller, @Service, @Repository, @Component에 대해 하나씩 정리해보았다.
1. @Component
- 기본 개념 :
@Component는 스프링이 자동으로 탐지하고 관리할 수 있는 범용적인 빈으로 클래스를 표시한다.
이 어노테이션은 특정한 역할을 지정하지 않고 단순히 스프링 컨테이너에 의해 관리되어야 하는 클래스임을 나타낸다. - 사용 예 :
일반적인 유틸리티 클래스나 로직을 처리하는 클래스에 붙여서 사용한다.
2. @Controller
- 기본 개념 :
@Controller는 웹 애플리케이션에서 요청을 처리하고 그 결과를 View로 반환하는 역할을 하는 클래스를 나타낸다.
이 어노테이션이 붙은 클래스는 주로 HTTP 요청을 처리하는 메서드를 포함하며 스프링 MVC 패턴에서 중요한 역할을 한다. - 사용 예 :
웹 애플리케이션에서 HTTP 요청을 처리하고 그 결과를 반환하는 컨트롤러 클래스에 사용된다. - 추가 기능 :
@RequestMapping과 같은 어노테이션과 함께 사용하여 특정 경로에 대한 요청을 매핑한다.
3. @Service
- 기본 개념 :
@Service는 비즈니스 로직을 처리하는 서비스 클래스를 나타낸다.
이 어노테이션을 붙이면 스프링은 이 클래스를 빈으로 관리하며 다른 컴포넌트에서 이를 의존성 주입받아 사용할 수 있다. - 사용 예 :
비즈니스 로직을 처리하는 클래스에 사용된다. 예를 들어 사용자 관리, 결제 처리 등의 로직을 담고 있는 클래스에 주로 사용한다.
4. @Repository
- 기본 개념 :
@Repository는 데이터 접근 계층을 담당하는 클래스를 나타낸다.
이 어노테이션을 붙이면 스프링이 해당 클래스를 빈으로 관리할 뿐만 아니라 예외를 데이터 접근 관련 예외로 변환해주는 추가적인 기능도 제공한다. - 사용 예 :
데이터베이스와의 상호작용을 담당하는 클래스에 사용된다. 예를 들어 JPA를 사용하는 DAO클래스에서 많이 사용된다.
[스프링이 Bean으로 관리하는 의미]
- 빈 관리 :
스프링 컨테이너는 애플리케이션에서 필요한 객체들을 생성하고 그 객체들의 생명주기를 관리한다.
스테레오 타입의 어노테이션을 붙이면 해당 클래스의 객체가 스프링이 컨테이너의 의해 자동으로 생성되고 관리된다. - 의존성 주입 :
스프링은 관리되는 빈을 다른 빈에 주입하여 사용할 수 있도록 지원한다.
이를 통해 애플리케이션의 결합도를 낮추고 코드의 유지보수성을 높일 수 있다.
따라서 스테레오 타입의 어노테이션들은 스프링이 애플리케이션의 특정 역할을 담당하는 클래스를 관리하도록 지시하는 어노테이션이다.
이 어노테이션들을 사용하면 스프링이 해당 클래스를 빈으로 등록하고 의존성 주입 등을 통해 다른 컴포넌트에서 사용할 수 있게 된다.
'Java > Spring' 카테고리의 다른 글
[JAVA] 두 개의 리스트에서 중복 값 제거 HashSet 사용하기 (0) | 2025.01.03 |
---|---|
[Spring] Jasypt로 프로퍼티 암호화하기 (1) | 2024.08.30 |
[Spring] @RequestBody가 쓰이지 않는 경우 (0) | 2024.08.28 |
[Spring] @RequestBody 사용하기 (0) | 2024.08.28 |
[Spring] 정적 팩토리 메서드 패턴 (0) | 2024.08.27 |