Spring/inflearn

API

곽수진 2022. 8. 21. 20:00
반응형
@ResponseBody 문자 반환

 

@ResponseBody : HTTP의 body에 문자 내용을 직접 반환함

    → viewResolver를 사용하지 않음

 

 

▶ localhost:8080/hello-string?name=spring!!을 요청하면 hello 뒤에 name으로 입력한 spring!!이 출력됨

 

 

▶ viewResolver와의 차이점 → 소스 코드를 확인 해보면 문자열 자체만 출력

 

 

@ResponseBody 객체 반환

 

▶ @ResponseBody를 사용하고 객체를 반환하면 JSON으로 변환

Getter / Setter 단축키 : Alt + Insert

 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data", "hello!!");
        return "hello";
    }

    @GetMapping("hello-mvc")
        public String helloMvc(@RequestParam("name") String name, Model model){
            model.addAttribute("name", name);
            return "hello-template";
    }

    @GetMapping("hello-string")
    @ResponseBody
    public String helloString(@RequestParam("name") String name){
        return "hello " + name;
    }

    @GetMapping("hello-api")
    @ResponseBody
    public Hello helloApi(@RequestParam("name") String name){
        Hello hello = new Hello();
        hello.setName(name);
        return hello;
    }

    static class Hello{
        private String name;

        public String getName(){
            return name;
        }

        public void setName(String name){
            this.name = name;
        }
    }
}

 

▶ localhost:8080/hello-api?name=spring!!!을 요청하면 JSON으로 변환되어 {"key" : "value"}가 출력됨

 

@ResponseBody를 사용해 localhost:8080/hello-api 요청
                                                ↓
HTTP의 BODY에 문자 내용을 직접 반환함
                                                ↓
viewResolver 대신에 HttpMessageConverter가 동작함
                                                ↓
JSON으로 변환된 값이 웹 브라우저에 출력됨

 

HttpMessageConverter
- 기본 문자 처리 : StringHttpMessageConverter
- 기본 객체 처리 : MappingJackson2HttpMessageConverter

 

반응형

'Spring > inflearn' 카테고리의 다른 글

회원 repository 테스트 케이스 작성  (0) 2022.08.23
회원 domain과 repository 만들기  (0) 2022.08.22
MVC와 템플릿 엔진  (0) 2022.08.20
정적 컨텐츠  (0) 2022.08.19
thymeleaf 템플릿 엔진  (0) 2022.08.18