스프링을 사용하다 보면 메서드나 클래스, 변수 위에 @ 이 붙은 것들을 보게 된다.
안쓰면 제대로 안 돌아가서 다른 사람 코드를 보고 처음에는 쓰게 되는데
막상 이 annotation이 뭔지 물어보면 대답을 명확하게 하지 못하는 경우도 간혹 있다.
쓸꺼면 알고 쓰자!
사실 면접 볼때 나의 github 소스코드를 보다가 면접관이 이 어노테이션은 뭔지 알고 있냐고 물어본적이 있어서 대충 대답한 기억이 있어서 정리해봤다. 코드를 쓰려면 제대로 알고 써야 저런 당황스러운 경험을 하지 않을 수 있다.
나만 모를수도 있지만 이런게 있구나 하면서 한번 정리하면 좋을 것 같다.
기본중의 기본 어노테이션만 정리해봤다.
annotation이란?
사전적 의미로, 주석이라는 뜻이다. @를 이용하여 자바코드에 추가하여 의미를 부여하는 것이다. 위에서 잠깐 이야기 한것처럼 클래스, 메서드, 변수에 등 모든 요소에 사용이 가능하다. 직관적으로 메타데이터 설정이 가능하도록 나온것으로 아래와 같이 사용한다.
@RestController
@RequestMapping("/test")
public class TestController {
// 관련 코드
}
annotation 종류
애노테이션 | 설명 | 사용 |
@Controller | 스프링 MVC의 컨트롤러 객체임을 명시하는 애노테이션 | 클래스 |
@RequestMapping | 특정 URI에 매칭되는 클래스나 메소드임을 명시하는 애노테이션 | 클래스, 메소드 |
@RequestParam | 요청(request)에서 특정한 파라미터의 값을 찾아낼 때 사용하는 애노테이션 | 파라미터 |
@RequestHeader | 요청(request)에서 특정 HTTP 헤더 정보를 추출할 때 사용 | 파라미터 |
@PathVariable | 현재의 URI에서 원하는 정보를 추출할 때 사용하는 애노테이션 | 파라미터 |
@CookieValue | 현재 사용자의 쿠키가 존재하는 경우 쿠키의 이름을 이용해서 쿠키의 값을 추출 | 파라미터 |
@ModelAttribute | 자동으로 해당 객체를 뷰까지 전달하도록 만드는 애노테이션 | 메소드, 파라미터 |
@SessionAttribute | 세션상에서 모델의 정보를 유지하고 싶은 경우에 사용 | 클래스 |
@InitBinder | 파라미터를 수집해서 객체로 만들 경우에 커스터마이징 | 메소드 |
@ResponseBody | 리턴 타입이 HTTP의 응답 메시지로 전송 | 메소드, 리턴타입 |
@RequestBody | 요청(request) 문자열이 그대로 파라미터로 전달 | 파라미터 |
@Repository | DAO 객체 | 클래스 |
@Service | 서비스 객체 | 클래스 |
반응형
'Java | spring > Spring' 카테고리의 다른 글
Spring boot 3.2.0 마이그레이션 가이드 (+끝 없는 오류 해결 방법!) (1) | 2023.12.21 |
---|---|
스프링 트랜잭션 @Transactional 개념 (+주요 설정값) (0) | 2021.06.04 |
Model 2 방식과 스프링 MVC (0) | 2021.05.14 |
스프링 MVC의 주요 구성 요소 (0) | 2021.05.14 |
Spring에서 JDBC가 아닌 MyBatis를 사용하는 이유 (0) | 2019.07.13 |
댓글