📘 자바 & 스프링 어노테이션 총정리 노트
1️⃣ Java 기본 어노테이션
| 어노테이션 | 설명 |
| @Override | 메서드가 부모 클래스/인터페이스의 메서드를 오버라이드한다는 표시 |
| @Deprecated | 더 이상 사용하지 않는 코드임을 표시 (IDE 경고 발생) |
| @SuppressWarnings("…") | 컴파일러 경고를 무시하도록 설정 |
| @FunctionalInterface | 람다식/함수형 인터페이스임을 명시 |
2️⃣ Servlet / JSP 어노테이션
| 어노테이션 | 설명 |
| @WebServlet("/path") | 특정 URL과 서블릿 클래스를 매핑 |
| @WebFilter("/*") | 요청/응답을 가로채는 필터 등록 |
| @WebListener | 리스너(세션, 컨텍스트 이벤트 감지) 등록 |
3️⃣ Spring MVC (웹 계층)
| 어노테이션 | 설명 |
| @Controller | MVC 컨트롤러 클래스 |
| @RestController | @Controller + @ResponseBody, JSON 응답 전용 |
| @GetMapping("/…") | GET 요청 처리 |
| @PostMapping("/…") | POST 요청 처리 |
| @PutMapping("/…") | PUT 요청 처리 |
| @DeleteMapping("/…") | DELETE 요청 처리 |
| @PatchMapping("/…") | PATCH 요청 처리 |
| @RequestMapping("/…") | 여러 HTTP 메서드 공통 매핑 |
| @RequestParam | 쿼리 파라미터/폼 데이터 받기 |
| @PathVariable | URL 경로 변수 받기 |
| @ModelAttribute | 요청 파라미터를 DTO에 바인딩 |
| @RequestBody | JSON 요청 본문 → DTO로 매핑 |
| @ResponseBody | 객체 → JSON 등으로 HTTP 응답 바디에 직접 출력 |
| @SessionAttributes | 세션에 모델 속성 저장 |
| @CookieValue | 쿠키 값 주입 |
4️⃣ Spring Core (DI, Bean 관리)
| 어노테이션 | 설명 |
| @Service | 서비스 계층 클래스 |
| @Repository | DAO/DB 계층, 예외 변환 |
| @Component | 일반 컴포넌트 등록 |
| @Configuration | 설정 클래스 |
| @Bean | 수동으로 빈 등록 |
| @Autowired | 의존성 자동 주입 (타입 기준) |
| @Qualifier("…") | 동일 타입 빈 여러 개일 때 특정 이름 선택 |
| @Value("${…}") | application.properties 값 주입 |
| @PostConstruct | 빈 초기화 후 실행 메서드 |
| @PreDestroy | 빈 소멸 직전 실행 메서드 |
5️⃣ Spring Validation (Bean 검증)
| 어노테이션 | 설명 |
| @Valid | 컨트롤러에서 DTO 검증 수행 |
| @NotNull | null 불가 |
| @NotBlank | null/빈문자열/공백 불가 |
| @NotEmpty | null/빈문자열 불가 (공백 허용) |
| @Size(min, max) | 문자열/컬렉션 크기 제한 |
| @Length(min, max) | 문자열 길이 제한 (Hibernate Validator) |
| @Pattern(regexp="…") | 정규식 검증 |
| @Min, @Max | 숫자 값 제한 |
| @Positive, @Negative | 양수/음수 제한 |
| 이메일 형식 검증 | |
| @Past, @Future | 날짜 유효성 검사 |
6️⃣ MyBatis
| 어노테이션 | 설명 |
| @Mapper | Mapper 인터페이스 등록 |
| @Select | SQL SELECT 어노테이션 |
| @Insert | SQL INSERT 어노테이션 |
| @Update | SQL UPDATE 어노테이션 |
| @Delete | SQL DELETE 어노테이션 |
7️⃣ Lombok (편의 어노테이션)
| 어노테이션 | 설명 |
| @Data | Getter/Setter/ToString/Equals/HashCode 자동 생성 |
| @Getter, @Setter | Getter, Setter 자동 생성 |
| @NoArgsConstructor | 기본 생성자 자동 생성 |
| @AllArgsConstructor | 전체 필드 생성자 자동 생성 |
| @Builder | 빌더 패턴 적용 |
| @Slf4j | 로깅 필드 자동 생성 |
'기초 및 언어 > ▶ Spring' 카테고리의 다른 글
| 10. Spring Boot_fetch(중복 검사) (0) | 2025.09.28 |
|---|---|
| 09. Spring Boot 📂파일 업로드 + DB 저장 정리 (1) | 2025.09.26 |
| 07. Spring_마이바티스(MyBatis) + 페이지 설정 (0) | 2025.09.24 |
| 06. Spring_마이바티스(MyBatis) (2) | 2025.09.23 |
| 05. Spring_유효성검사 (0) | 2025.09.21 |