본문 바로가기
기록/Java&Spring&Eclipse

[Java/Spring] 스프링 어노테이션 @RestController, @Value

by 자임 2022. 10. 27.

 

- @RestController

view가 필요없는 API만 지원하는 서비스에서 사용 (Spring 4.0.1부터 제공)
@RequestMapping 메서드가 기본적으로 @ResponseBody 의미를 가정한다.
data(json, xml 등) return이 주목적
즉, @RestController = @Controller + @ResponseBody

 

출처 : https://baek-kim-dev.site/69

 


- @RequestBody
HTTP POST 요청에 대해서만 처리한다.
HTTP POST 요청에 대해 request body에 있는 request message에서 값을 얻어와 매칭한다.
RequestData를 바로 Model이나 클래스로 매핑한다.
이를테면 JSON 이나 XML같은 데이터를 적절한 messageConverter로 읽을 때 사용하거나 POJO 형태의 데이터 전체로 받는 경우에 사용한다.

- @Controller
Web MVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. 
출처 : https://baek-kim-dev.site/64?category=903513



- @Value : 프로퍼티 값 주입
출처 : https://bcp0109.tistory.com/227


+
프로퍼티로 값 주입해준 url에 왜 자꾸 null값이 들어가나 봤더니
테스트하려고 main에서 새로운 객체를 생성했기 때문에 null 값이 들어가 버린듯.

이미 빈으로 등록된 객체를 사용하는 것이 아니라 new 키워드를 통해 새로운 인스턴스를 생성하고 있기 때문이었습니다.
결론은 스피링 빈으로 등록된 인스턴스가 아니기 때문에 @Value 어노테이션이 작동하지 않은 것입니다.
출처 : https://wildeveloperetrain.tistory.com/143