1. 컨트롤러 레벨 어노테이션
- @Controller: 클래스가 컨트롤러임을 나타내고, 스프링 MVC에서 HTTP 요청을 처리하는 데 사용됩니다.
- @RestController: @Controller와 @ResponseBody의 조합으로, JSON/XML 형태로 데이터를 반환하는 RESTful 웹 서비스용 컨트롤러를 정의합니다.
- @RequestMapping: URL 요청을 특정 메서드와 매핑하는 데 사용됩니다.
- @GetMapping, @PostMapping, @PutMapping, @DeleteMapping: HTTP 메서드별로 URL 요청을 특정 메서드와 매핑하는 데 사용됩니다.
- @PathVariable: URL 경로의 변수 값을 메서드 매개변수로 받는 데 사용됩니다.
- @RequestParam: 쿼리 파라미터의 값을 메서드 매개변수로 받는 데 사용됩니다.
- @RequestBody: HTTP 요청 본문의 값을 메서드 매개변수로 받는 데 사용됩니다.
- @ResponseBody: 메서드의 반환값을 HTTP 응답 본문으로 변환하는 데 사용됩니다.
2. 서비스 레벨 어노테이션
- @Service: 클래스가 서비스 역할을 한다는 것을 나타내고, 비즈니스 로직을 처리하는 데 사용됩니다.
3. 리포지토리 레벨 어노테이션
- @Repository: 클래스가 데이터 접근 객체(DAO)임을 나타내고, 데이터베이스 연동을 처리하는 데 사용됩니다. 이 어노테이션은 예외를 Spring 데이터 접근 예외로 변환하는 데 도움을 줍니다.
4. 의존성 주입 관련 어노테이션
- @Autowired: 스프링의 의존성 주입(DI) 기능을 사용하여 객체를 자동으로 주입하는 데 사용됩니다.
- @Qualifier: @Autowired와 함께 사용하여 주입할 빈(bean)을 구체적으로 지정하는 데 사용됩니다.
- @Resource: JSR-250의 어노테이션으로, 이름을 통해 의존성을 주입하는 데 사용됩니다.
- @Inject: JSR-330의 어노테이션으로, 의존성을 주입하는 데 사용됩니다.
5. 트랜잭션 관리 어노테이션
- @Transactional: 메서드나 클래스 수준에서 트랜잭션 관리를 설정하는 데 사용됩니다.
6. 설정 관련 어노테이션
- @Configuration: 클래스를 스프링 설정 클래스로 정의하고, 빈 정의를 포함할 수 있게 합니다.
- @Bean: 메서드를 통해 스프링 컨테이너가 관리하는 빈을 생성하는 데 사용됩니다.
- @ComponentScan: 스캔할 패키지를 지정하여 컴포넌트를 검색하고 빈으로 등록하는 데 사용됩니다.
7. 검증 관련 어노테이션
- @Valid: 메서드 매개변수로 전달된 객체에 대해 검증을 수행하는 데 사용됩니다.
- @NotNull, @Min, @Max, @Size 등: javax.validation.constraints 패키지의 어노테이션으로, 필드 수준에서 검증 규칙을 정의하는 데 사용됩니다.
'스프링' 카테고리의 다른 글
Spring framework (1) | 2024.09.09 |
---|---|
스프링 동작 원리 (0) | 2024.07.26 |