Spring Annotation이란?
자바 코드 사이에 주석처럼 쓰여서 특별한 의미를 부여하는 것.
컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터 제공.
즉 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있음.
클래스 내부 혹은 클래스 바로 위에 @로 시작하는 것이 바로 어노테이션이다!
Annotation 종류
주로 내가 컨트롤러단 작업 하면서 자주 봤었던, 헷갈렸던 Annotation들만 정리해보깅ㅎㅎㅎ
@Autowired
: 속성(field), setter method, constructor(생성자)에서 사용하며 Type에 따라 알아서 Bean을 주입.
@Controller
: 이 클래스가 컨트롤러 클래스라고 알려주는 것. 컨트롤러 클래스 안에서 return으로 VO나 List나 HashMap 같은거 뷰로 전송.
@RestController
: @Controller에다가 @RespnoseBody가 결합된 annotation. 문자열과 JSON 형태의 데이터 전송 가능.
@RequestBody
: 클라이언트에서 서버로 필요한 데이터를 전송하기 위해서 JSON이라는 데이터를 요청 본문에 담아서 서버로 보내면,
서버에서는 이 annotation을 사용하여HTTP 요청 본문에 담긴 값들을 자바 객체로 변환시켜 객체에 저장.
@RespnoseBody
: 서버에서 클라이언트로 요청에 대한 응답 데이터를 전송하기 위해서 이 annotation을 사용하여,
자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송시키는 역할을 함.
@RequestParam
: 클라이언트가 요청한 URL의 파라미터에 대한 값을 받아오는 역할을 함.
@RequestMapping
: Spring의 컨트롤러 혹은 그 메서드의 URI를 정의하는데 쓰이고 default는 GET.
@ModelAttribute
: 뷰에서 전달해주는 파라미터를 클래스(VO/DTO)의 멤버 변수로 binding 해주는 역할을 함.
@RequestAttribute
: request객체의 attribute를 가지고 올 수 있는 annotation이라고 함.
'Backend' 카테고리의 다른 글
Java Collectors groupingBy (1) | 2021.11.13 |
---|---|
JSTL & EL (0) | 2021.09.12 |
자바 개념 정리_05 (0) | 2021.09.05 |
자바 개념 정리_04 (0) | 2021.08.02 |
자바 개념 정리_03 (0) | 2021.08.01 |