mvc란 Model, View, Controller의 약자이다.
url에서 name=spring!! 을 받았다.
Controller의 @RequestParam 어노테이션으로 파라미터로 넘어온 "name"을 가져오고, String name은 spring!!이 된다. 이렇게 가져 온 데이터는 model이라는 변수에 addAtrribute에 담아준다.
return "hello-template";
hello-template.html과 매핑된다
hello-template.html으로 model이 전달되고, ${name}에는 key : name 의 value 값인 spring!!이 전달된다.
웹브라우저에서 localhost:8080/hello-mvc를 넘기면 스프링 부트가 띄울때 같이 띄워지는 내장 톰켓 서버를 먼저 거치게 된다.
내장 톰켓 서버는 hello-mvc를 스프링에 던진다.
스프링에서는 Controller에 매핑되어 있는지 찾은 뒤, 매핑되어 있는 메서드를 호출해준다. 리턴시 hello-template으로 하고, key:name, value:spring!! 인 model을 스프링에게 넘겨준다.
스프링은 viewResolver가 view를 찾아주고 템플릿 엔진과 연결시켜준다. viewResolver는 return: hello-template과 똑같은 templates/hello-spring.html을 찾아서 thymeleaf 템플릿 엔진에게 처리를 넘긴다.
템플릿 엔진은 랜더링 후 변환을 한 html을 웹브라우저에 반환한다.
정적일때는 변환하지 않고 그대로 넘겨준다.