본문 바로가기
기초 및 언어/▶ Spring

08. Spring&Java 어노테이션 정리

by 류딩이 2025. 9. 25.
📘 자바 & 스프링 어노테이션 총정리 노트
 

 

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 양수/음수 제한
@Email 이메일 형식 검증
@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 로깅 필드 자동 생성