차근차근/Spring

스프링 어노테이션.. 맨날 ..

예쁜꽃이피었으면 2022. 1. 11. 15:03
@RequestMapping

1) value 속성

: 요청받을 url 설정

2) method 속성

: 어떤 요청을 받을지 정의

method = RequestMethod.GET / method = RequestMethod.POST

여러개 하고싶으면 method = {RequestMethod.PUT , RequestMethod.DELETE}

3) produces 속성

: Response의 Content-Type 제어

prodeuces = "application/text;charset=utf-8"

 

 

@ModelAttribute

사용자가 요청시 전달하는 값을 오브젝트 형태로 매핑해주는 어노테이션

JAVA에는 2가지 Bean이 있다.
Spring에서 표현하는 Bean, JAVA에서 표현하는 Bean
Spring Bean
Spring Bean은 Spring Container가 관리하는 객체를 의미한다. 개발자가 아닌 스프링 컨테이너가 생성해 생명 주기를 관리하고, 필요한 곳에 의존성 주입해주는 객체들을 스프링에서 Bean이라고 한다.
JAVA Bean
JAVA Bean은 데이터 전달을 위해 사용되는 자바 객체이다.
Java Bean은 Spring의 DTO(VO)와 유사한 개념이다. DTO처럼 private 변수와 Getter/Setter만을 가지고 있으며, 직렬화가 가능한 객체이다.

getter와 setter가 있는 상태에서 요청을 하면 각각의 값이 같은 이름의 객체로 바인딩된다.

 

@RequestParam => 1 : 1 맵핑

@ModelAttribute => 객체맵핑

 

 

@PathVariable

spring 3에서 추가된 기능으로 

URL에 변수를 넣어주는 것. RESTful 서비스의 URL형태라고 볼 수 있는 듯.

@RequestMapping에서 사용한 변수와 @PathVariable에서 사용하는 변수의 이름이 같아야 맵핑이 된다.

@RequestMapping(value = "user/email/{email}", method = RequestMethod.GET)
public ModelAndView getUserByEmail(@PathVariable("email") String email) {
...

RequestParam 일 때 URL 

: http://localhost:8080?aaa=123&bbb=456&ccc=789

PathVariable 일 때 URL

: http://localhost:8080/123/456/789

 

 

* 주의 

- null이나 공백값이 들어가는 파라미터값은 안됨.

- Spring에서 @PathVariable사용해 값을 넘겨받을 때 값에 .(온점)이 포함되어 있으면 .이후 값은 잘린다..?

 

@ResponseBody

- 스프링에서 비동기처리 시 사용 

- 응답(Response) : 서버 -> 클라이언트로 통신하는 메시지 

- Body : 비동기 통신을 할 때 본문에 데이터를 담아서 보내야 한다. 

@RequestBody

- 스프링에서 비동기처리 시 사용 

- 요청(Request) : 클라이언트 -> 서버로 통신하는 메시지 

- Body : 비동기 통신을 할 때 본문에 데이터를 담아서 보내야 한다.

 

@RestController

@Controller와 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙어 별도의 어노테이션을 명시하지 않아도 HTTP 응답데이터(Body)에 자바 객체가 맵핑되어 전달된다.

@Controller인 경우 바디를 자바 객체로 받기 위해서는 @ResponseBody어노테이션을 반드시 명시해야 한다. 


[참조]

https://mungto.tistory.com/436

 

[Spring] @RequestMapping이란?

우리는 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의를 한다. 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것이 @RequestMapping이다. @RequestMapping에서 가장

mungto.tistory.com

https://velog.io/@duckchanahn/Spring-Java-Beans

 

Spring, Java Beans

Beans

velog.io

https://galid1.tistory.com/769

 

Spring MVC - @ModelAttribute의 장점(@RequestParam와 @ModelAttribute)

이번 시간에는 사용자의 전달값을 핸들러의 매개변수로 매핑할때 사용되는 @RequestParam 과 @ModelAttribute 에 대해 알아보도록 하겠습니다. 1. 사용법과 예제 우선 각각의 어노테이션의 사용법과 예

galid1.tistory.com

 

 

 

 

 

 

반응형