1. 구성 관련 어노테이션

@Configuration

  • 스프링 컨테이너에 빈(Bean) 설정을 정의하는 클래스임을 나타냄.
  • XML 기반 설정을 대체.
  • @Bean과 함께 사용해 빈을 등록.
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

 

@Bean

  • 메서드 레벨에서 사용하며, 반환값을 스프링 컨테이너에 빈으로 등록.
  • 주로 @Configuration과 함께 사용.
@Bean
public DataSource dataSource() {
    return new HikariDataSource();
}

 

@ComponentScan

  • 특정 패키지를 스캔하여 @Component, @Service, @Repository, @Controller로 선언된 클래스를 자동으로 빈으로 등록.
  • basePackages 속성으로 탐색 범위 설정 가능.
@Configuration
@ComponentScan(basePackages = "com.example.myapp")
public class AppConfig {
}

 

@Import

  • 다른 @Configuration 클래스를 가져와서 설정을 병합.
  • 모듈화된 설정을 나누고 결합할 때 사용.
@Configuration
@Import(AppConfig.class)
public class MainConfig {
}

 

2. 컴포넌트 관련 어노테이션

@Component

  • 스프링이 관리하는 일반 빈으로 등록.
  • 계층에 상관없이 모든 클래스에 사용 가능.

@Service

  • 비즈니스 로직을 처리하는 서비스 계층 클래스에 사용.
  • @Component와 동일한 역할을 하지만 의미를 명확히 하기 위해 사용.

@Repository

  • 데이터 접근 계층(DAO)에 사용.
  • 데이터베이스 예외를 Spring 예외로 변환하는 추가 기능을 제공.

@Controller

  • 프레젠테이션 계층의 컨트롤러 클래스에 사용.
  • 요청을 처리하고 View를 반환.

@RestController

  • @Controller와 @ResponseBody를 결합한 어노테이션.
  • JSON/XML 형식의 데이터를 반환하는 RESTful 컨트롤러에 사용.

 

3. 의존성 주입 관련 어노테이션

@Autowired

  • 스프링 컨테이너에서 의존성을 자동으로 주입.
  • 생성자, 필드, 메서드에서 사용 가능.
  • 기본적으로 타입 기반 주입.

@Qualifier

  • 같은 타입의 여러 빈이 있을 때 특정 빈을 선택하도록 지정.

@Required

  • 필수로 설정해야 하는 속성을 표시.
  • 스프링 5.1 이후부터는 더 이상 사용하지 않음.

@Value

  • 프로퍼티 값을 주입.
  • application.properties나 application.yml의 값을 읽어올 때 사용.

 

4. 요청 매핑 관련 어노테이션

@RequestMapping

  • HTTP 요청 URL을 특정 메서드 또는 클래스와 매핑.
  • 클래스와 메서드 레벨에서 사용 가능.

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping

  • HTTP 메서드(GET, POST, PUT, DELETE)에 특화된 요청 매핑.

@PathVariable

  • URL 경로 변수 값을 가져올 때 사용.

@RequestParam

  • URL 쿼리 파라미터 값을 가져올 때 사용.

@RequestBody

  • HTTP 요청 본문(body)을 매핑하여 객체로 변환.

@ResponseBody

  • 메서드가 반환하는 데이터를 View가 아닌 HTTP 응답 본문으로 직렬화.
  • @RestController에 포함되어 있음.

 

5. 트랜잭션 관리 관련 어노테이션

@Transactional

  • 메서드나 클래스 단위로 트랜잭션을 관리.
  • 데이터 일관성을 보장하기 위해 사용

 

6. 유효성 검사 관련 어노테이션

@Valid

  • Bean Validation API를 사용하여 요청 데이터를 검증.
  • @NotNull, @Size 등과 함께 사용.

이 외 Spring Security, Spring Boot Actuator, Spring Cloud 등에서 제공하는 어노테이션

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기