Spring Annotation

김강산·2022년 10월 31일
0

Spring

목록 보기
6/13

<목표>
1. 컨트롤러 응답
2. void, String, 자바빈즈(VO)
3. 컬렉션 List, Map
4, ResponseEntity<2,3,byte[]> : 2번, 3번, byte[]가 들어갈 수 있음
5. 요청 처리

  • @애너테이션
  • Date 타입 처리
  • @Date TimeFormat

1. Annotation이란?

Spring에서는 Annotation을 많이 사용한다. Annotation의 역할은 아래와 같다
사전상으로는 주석의 의미이지만 Java에서는 주석 이상의 기능을 가지고 있다
Annotation은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다 소스코드에 추가하면 단순 주석의 기능을 하는 것이 아니라 특별한 기능을 사용할 수 있다

Annotation은 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할을 한다 Annotation을 황용하여 Spring Framework는 해당 클래스가 어떤 역할인지 정하기도 하고, Bean을 주입하기도 하며, 자동으로 getter 나 setter를 생성하기도 한다
특별한 의미를 부여하거나 기능을 부여하는 등 다양한 역할을 수행할 수 있다

2. Spring의 대표적인 Annotation과 역할

@Controller

Spring에게 해당 Class가 Controller의 역할을 한다고 명시하기 위해 사용하는 Annotation이다
ex)

@RequestParam

URL에 전달되는파라미터를 메소드의 인자와 매칭시켜, 파라미터를 받아서 처리할 수 있는 Annotation으로 사용한다
JSON형식의 Body를 MessageConverter를 통해 Java 객체로 변환시킨다
ex)

@RequestBody

Body에 전달되는 데이터를 메소드의 인자와 매칭시켜, 데이터를 받아서 처리할 수 있는 Annotation으로 사용한다
클라이언트가 보내는 HTTP 요청 본문(JSON 및 XML 등)을 Java 오브젝트로 변환한다
클라이언트가 body에 json or xml과 같은 형태로 값(주로 객체)를 전송하면, 해당 내용을 Java Object로 변환한다
ex)

@ModelAttribute

클라이언트가 전송하는 HTTP parameter, Body 내용을 Setter 함수를 통해 1:1로 객체에 데이터를 연결(바인딩)한다
RequestBody와 다르게 HTTP Body 내용은 multipart/form-data 형태를 요구한다
@RequestBody가 json을 받는 것과 달리 @ModenAttribute의 경우에는 json을 받아 처리할 수 없다

@ResponseBody

@ResponseBody는 메소드에서 리턴되는 값이 View로 출력되지 않고 HTTP Response Body에 직접 쓰여지게 된다
return 시에 json, xml과 같은 데이터를 return한다
ex)

@Autowired

Spring Framework에서 Bean 객체를 주입받기 위한 방법은 크게 아래의 3가지가 있다
Bean을 주입받기 위하여 @Autowired를 사용한다
Spring Framework가 Class를 보고 Type에 맞게(Type을 먼저 확인 후, 없으면 Name 확인) Bean을 주입한다

  • @Autowired
  • 생성자(@AIIArgsConstructor 사용)
  • setter

GetMapping

RequestMapping(Method=RequestMethod.GET)과 똑같은 역할을 한다
ex)

PostMapping

RequestMapping(Method=RequestMethod.POST)과 똑같은 역할을 한다
ex)

0개의 댓글