Backend/Spring

자주 사용되는 Spring 어노테이션에 대해 알아보자!

Juwon2106 2022. 1. 21. 17:08
728x90

안녕하세요 이번 포스트에서 이야기할 내용은 Spring 어노테이션( 주석 )입니다!.

 

Annotation이란? ( 주석 )

Annotation이란 Java 5부터 추가된 문법입니다.

 

사전적 의미는 주석이지만 자바에서 사용될 때의 Annotation은 코드 사이에 주석처럼 쓰여서 특별한 의미를 부여합니다.

 

Spring AOP의 A, Aspect를 Annotation이라고도 할 수 있습니다. 

 

특정 기능, 작동하는 것을 개별로 모듈로 만들어 필요한 곳에 @Annotation 형태로 넣을 수 있게 하는 것이 AOP의 편리한 점입니다.

 

Spring Annotation

어노테이션 설명
@Controller 스프링 MVC의 C, Controller 객체임을 명시하는 어노테이션
@RequestMapping 특정 URI에 해당되는 클래스나 메소드임을 명시하는 어노테이션
@RequestParam Request의 매개변수를 가져오는 기능을 하며 메소드내에 변수로 활용
@RequestHeader Request에서 특정 HTTP Header 정보를 추출할 때 사용
@PathVariable 파라미터 앞에 사용하며 해당 URL에 {}로 특정 파라미터를 변수로 담아 활용 가능
@CookieValue Client의 쿠키가 존재하는 경우 쿠키 이름을 이용해서 쿠키 값을 추출
@ModelAttribute View에서 전달해주는 매개변수를 클래스의 멤버변수로 binding 해주는 어노테이션
@InitBinder 매개변수를 수집해서 객체로 만들 경우에 커스터마이징
@ResponseBody JSON 형식의 데이터값을 응답할 때 사용하는 것으로 Response Body에 형식의 노출 객체를 return할 때 json 라이브러리에 의해 문자열로 변환
@RequestBody 요청이 들어온 데이터(JSON, XML)를 클래스나 model로 매핑
@Repository DAO 객체를 의미함
@Service Service 객체를 의미함
@SessionAttributes @SessionAttribute("name") Model에 key 값이 "name"인 Value 값은 자동으로 세션에 저장
@Runwith JUnit 프레임워크의 테스트를 할 수 있도록 설정 @Runwith에 Runner 클래스 설정시 JUnit의 내장된 runner 대신 설정한 SpringJUnit4ClassRunner를 실행
@ContextConfiguration 지정된 클래스나 문자열을 이용해 필요한 객체들을 스프링내 객체로 등록
@Autowired 해당 인스턴스 객체에 스프링으로부터 자동으로 Bean을 주입
@Test JUnit에서 테스트 대상을 표시하며 단위테스트 메소드임을 의미
@Component 스프링에게 해당 클래스가 관리해야할 대상임을 명시
@GetMapping RequestMapping(Method=RequestMethod.Get)
@PostMapping RequestMapping(Method=RequestMethod.POST)
@Transactional Transactional의 범위, 구역을 나타냄
@Cacheable 해당 메소드를 처음 호출시에 Cache에 생성하고 이후에 동일한 메소드 호출시 해당 Cache를 리턴함 결과적으로 해당 메소드의 호출 횟수를 줄여주는 어노테이션
@RestController View가 필요없는 API에 지원하며, @RequestMapping 메소드가 @ResponseBody의 의미를 가정함, Data(Json, Xml) return시에 사용함

 

728x90