본문 바로가기
Java | spring/Spring

알고는 써야지! 기본 spring annotation 종류

by 워니 wony 2021. 5. 17.

스프링을 사용하다 보면 메서드나 클래스, 변수 위에 @ 이 붙은 것들을 보게 된다.

안쓰면 제대로 안 돌아가서 다른 사람 코드를 보고 처음에는 쓰게 되는데

막상 이 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 서비스 객체 클래스
반응형

댓글