곰돌이 놀이터

[Spring] 스프링 어노테이션(@, Annotation) 종류 본문

Back-End/Spring

[Spring] 스프링 어노테이션(@, Annotation) 종류

달나라 곰돌이 2019. 7. 27. 02:13

 어노테이션(@, Annotation)이란? 

 

Annotation은 Java5부터 새롭게 추가된 문법요소이다. 사전적으로는 "주석"이라는 의미를 가지고 있으며, 의미대로

자바 코드에 주석처럼 달아 특수한 의미를 부여해준다. 이 특별한 의미는 컴파일 타임 또는 런타임에 해석된다.

아래와 같이 클래스 내부 또는 클래스 바로 위에 '@'와 함께 시작하는 것이 어노테이션입니다.

이는 자바, Spring이 제공해 주는 것도 있고, 사용자가 직접 만들 수도 있다.

 

 어노테이션 용도

 

- @Override 어노테이션처럼 컴파일러를 위한 정보를 제공하기 위한 용도

- 스프링 프레임워크의 @Controller 어노테이션처럼 런타임에 리플렉션을 이용해서 특수 기능을 추가하기 위한 용도

- 컴파일 과정에 어노테이션 정보로부터 코드를 생성하기 위한 용도

 

※ 자바 리플렉션: 다른언어에는 존재하지 않는 특별한 기능, 컴파일 시간이 아닌 실행시간에 동적으로 특정 클래스의 정보를 객체를 통해 분석 및 추출해내는 프로그래밍 기법

 

 어노테이션 종류 

어노테이션 설명 사용
@Controller 스프링 MVC의 컨트롤러 객체임을 명시하는 어노테이션 클래스
@RequestMapping 특정 URI에 미챙되는 클래스나 메소드임을 명시하는 어노테이션 클래스, 메소드
@RequestParam 요청(request)에서 특정한 파라미터 값을 찾아낼 때 사용하는 어노테이션 파라미터
@RequestHeader 요청(request)에서 특정 HTTP헤더 정보를 추출할 때 사용 파라미터
@PathVariable 현재의 URI에서 원하는 정보를 추출할 때 사용하는 어노테이션 파라미터
@CookieValue 현재 사용자의 쿠키가 존재하는 경우 쿠키의 이름을 이용해서 쿠키의 값을 추출 파라미터
@ModelAttribute 자동으로 해당 객체를 뷰까지 전달하도록 만드는 어노테이션 메소드, 파라미터
@InitBinder 파라미터를 수집해서 객체로 만들 경우에 커스터마이징 메소드
@ResponseBody 리턴 타입이 HTTP의 응답 메시지로 전송 메소드, 리턴타입
@RequestBody 요청(request)문자열이 그대로 파라미터로 전달 파라미터
@Repository DAO 객체 클래스
@Service 서비스 객체 클래스
@SessionAttribute 세션상에서 모델의 정보를 유지하고 싶은 경우에 사용 클래스

계층형 Controller들을 사용하면 여러 정보들(요청과 Controller의 매핑 설정 등)을 XML 설정 파일에 명시 해줘야 하는데, 복잡할 뿐 아니라 설정 파일과 코드 사이를 빈번히 이동 해야하는 부담과 번거로움이 될 수 있다.
@MVC는 Controller 코드안에 어노테이션으로 설정함으로써 좀 더 편리하게 MVC 프로그래밍을 할 수 있도록 했다.

 

 참고 

 

adora-y.tistory

toma0912.tistory

sjh836.tistory

'Back-End > Spring' 카테고리의 다른 글

[Spring] 스프링이란?  (0) 2018.06.29
Comments