본문 바로가기
Java , Spring/Spring

Spring Boot (3) 정적, MVC, API

by 방배킹 2023. 1. 30.

1. 정적 컨텐츠

localhost:8080/hello-static.html 입력

1. hello-static 컨트롤러 존재 X

2. 컨트롤러가 없으므로 resources:static/hello-static.html 전송

 

 

2.MVC와 템플릿 엔진

 

MVC → Model, View, Controller

※요즘은 Controller와 View를 분류하는것이 기본이다.

 

Controller는 비즈니스 로직, 서버 관련

View는 화면과 관련있는일

 

Controller

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

View

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

localhost:8080/hello-mvc 입력 

hello-mvc 컨트롤러 존재

hello-mvc 컨트롤러 return hello-template

viewResolver가 templates/hello-templates.html 를 변환후 전달 (정적 변환 X)

 

변환후 전달

 

@RequestParam("name") 입력값 필요

localhost:8080/hello-mvc?name=JAMES

 

 

3.API

@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;
    }
}

data를 그대로 전송

 

localhost:8080/hello-api 입력

@ResponseBody 없을경우 →  viewResolver에게 전송

 

HTTP의 BODY에 문자 내용을 직접 반환

viewResolver 대신에 HttpMessageConverter 가 동작

 

기본 문자처리: StringHttpMessageConverter

기본 객체처리: MappingJackson2HttpMessageConverter

 

요약

정적컨텐츠 : 파일을 그냥 내려준다

MVC와 템플릿 엔진 : 템플릿 엔진을 model view controller 방식으로 나누어 렌더링이된 html을 전달

API : 객체를 반환(json 스타일로 반환)

 

'Java , Spring > Spring' 카테고리의 다른 글

컴포넌트 스캔  (0) 2023.03.29
싱글톤 컨테이너  (0) 2023.03.23
스프링 컨테이너와 스프링 빈  (1) 2023.03.22
Spring Boot (2) Welcome page 만들기  (1) 2023.01.30
Spring Boot (1) 스프링 부트 시작하기  (0) 2023.01.30

댓글