Spring

[spring] - controller

dev_chae2ee 2024. 9. 29. 19:31

spring은 MVC(Model - View - Controller) 구조를 기반으로 한다.

 

우선, 코드를 기반으로 spring 안에서 MVC가 어떻게 동작하는지 이해해보자.

 

 

MVC in Spring

 

java 폴더 안에 controller 패키지를 생성하고, HelloController.java 파일을 생성한다.

html 파일은 resources/templates 파일 아래에 생성한다.

HelloController.java

 

spring은 자바의 어노테이션 기반으로 코드를 짠다.

위의 코드에서도 Getmapping으로 "/hello" 주소가 들어오면 어떤 페이지를 띄워줄건지, 어떤 데이터를 넘길건지 지정할 수 있다.

model에 key:data, value:hello!! 값을 저장한 후에 hello.html을 띄워주는 로직이다.

 

hello.html

 

th로 thymeleaf를 템플릿 엔진으로 정의해주고, ${data} 라고 사용하면 key가 data인 value 값을 넣어주는 것이다.

위에서는 hello!!를 value로 넣어주었다.

 

localhost:8080/hello

 

그래서 값이 이렇게 들어갈 것이다.

 

 

 

Concept about MVC

 

스프링을 빌드하면 tomcat이 실행된다.

웹 브라우저에서 localhost:8080/hello를 실행하면 스프링의 내장 tomcat이 스프링한테 hello 들어왔는데? 이러고 hello 슬롯을 던진다.

그러면 스프링은 Getmapping으로 hello를 매칭한 부분을 찾아가는데, 이렇게 HelloController로 찾아간다.

 

hello 함수가 실행될 때 매개변수로 Model이 넘어온다.

스프링이 내부적으로 Model을 만들어서 넣어주는데, 이때 {data : hello!!} 로 데이터를 추가해 Model을 넘겨준다.

 

return으로 랜더링할 html 파일명을 기본적으로 resources/templates 아래에서 찾는다.

화면을 찾아서 띄워주는 역할은 viewResolver가 수행한다.