Spring

[Spring] 주요 어노테이션 기능 정리

SoU330 2025. 1. 16. 21:40

 

@Configuration

설정 클래스를 정의할 때 사용

Bean을 등록하고 구성할 클래스에 사용

 

@Bean

Spring 컨테이너에 Bean을 등록

개발자가 직접 관리해야 하는 객체를 Spring 컨테이너에 등록할 때 사용

 

@Autowired

의존성 주입(DI)을 처리

필요한 Bean을 자동으로 주입

 

@ComponentScan

특정 패키지를 스캔하여 @Component, @Service, @Repository, @Controller가 붙은 클래스를 Bean으로 등록

설정 클래스에서 컴포넌트를 스캔하도록 설정

 

@Filter

ComponentScan 시 특정 클래스를 포함하거나 제외

원하는 대상을 스캔하거나 제외할 때 사용

 

@Component

Spring Bean으로 등록

Spring에서 관리해야 할 일반적인 객체에 사용

 

@Controller

Spring MVC에서 컨트롤러 클래스로 정의

웹 요청을 처리하고 View와 연결

 

@Repository

DAO(Data Access Object) 클래스로 정의

데이터베이스와의 상호작용 처리

 

@Service

비즈니스 로직을 처리하는 클래스 정의

서비스 계층에 사용

 

@Nullable

필드, 메서드 파라미터가 null일 수 있음을 표시

코드 가독성 및 Null Safety에 도움

 

@RequiredArgsConstructor

final 또는 @NonNull 필드에 대해 생성자를 자동 생성

Lombok 라이브러리를 사용하여 의존성 주입 간소화

 

@Qualifier

동일한 타입의 Bean 중 특정 Bean을 지정

Bean 충돌이 발생할 때 특정 Bean을 선택

 

@Primary

동일한 타입의 Bean 중 기본으로 선택될 Bean 지정

우선적으로 사용될 Bean을 설정

 

@PostConstruct

Bean 초기화 후 실행할 메서드 정의

초기화 로직이 필요한 경우 사용

 

@PreDestroy

Bean이 소멸되기 전 실행할 메서드 정의

종료 로직이 필요한 경우 사용

 

@Scope

Bean의 스코프를 지정

ex) singleton, prototype

Bean 생성 범위를 제어

 

@RequestMapping

특정 URL에 매핑

컨트롤러 클래스나 메서드에 URL 매핑

 

@ResponseBody

컨트롤러 메서드의 반환 값을 HTTP 응답 본문으로 직접 반환

REST API 응답 처리