Spring RestTemplate 시작하기

김상혁·2021년 3월 2일
0

Spring

목록 보기
2/2

JDK : 1.8
Tomcat : 3.5.63
Spring : 5.2.3
Spring-webmvc : 4.3.7
jackson-mapper-asl : 1.9.4
jackson-databind : 2.9.3


RestTemplate Dependency 추가

  • spring-webmvc
    RestTemplate는 spring-webmvc > spring-web 에 포함되어있음
		<!--RestTemplate-->
		<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>4.3.7.RELEASE</version>
		</dependency>
  • jackson-mapper-asl
    JSON 처리 라이브러리 (JSON을 Object로, Object를 JSON으로 만드는 라이브러리)
		<dependency>
		<groupId>org.codehaus.jackson</groupId>
		<artifactId>jackson-mapper-asl</artifactId>
		<version>1.9.4</version>
		</dependency>
  • jackson-databind
    Controller에서 return 값을 Json으로 자동변환시키기 위해 필요한 라이브러리
		<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>2.9.3</version>
		</dependency>

▶ 항상 Dependency 추가 후엔 Project Structure에서 추가된 내용 넣어주기!


Controller

package controller;

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.HashMap;
import java.util.Map;

@RestController
public class homeController {

    @RequestMapping(method = RequestMethod.GET, value = "/getTemp/{str}", produces = MediaType.APPLICATION_JSON_VALUE)
    public Map temp(@PathVariable String str) {

        HashMap<String, String> json = new HashMap<>();

        json.put("id", str);
        json.put("pw", "sdasd");

        return json;
    }

}

▶ @RestController : @Controller에 @ResponseBody가 추가된 형태의 Annotion
--> 기본 @Controller에 @ResponseBody를 사용해도(아래 코드) 같은 형태이다.

@Controller
public class homeController {

    @RequestMapping(method = RequestMethod.GET, value = "/getTemp/{str}", produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody Map temp(@PathVariable String str) {

▶ produces = MediaType.APPLICATION_JSON_VALUE : 리턴 값 혹은 특정 파라미터를 Json으로 받겠다는 의미
--> HashMap으로 만든 뒤 반환하면 자동으로 json 변형 (jackson-databind lib)



0개의 댓글