[spring] - controller

2024. 9. 29. 19:31·Spring

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가 수행한다.

 

 

 

'Spring' 카테고리의 다른 글

[spring] - DI 컨테이너  (1) 2025.05.18
[spring] - test code 작성하기  (0) 2024.10.01
[spring] - 프로젝트 생성  (0) 2024.09.29
'Spring' 카테고리의 다른 글
  • [spring] - DI 컨테이너
  • [spring] - test code 작성하기
  • [spring] - 프로젝트 생성
dev_chae2ee
dev_chae2ee
  • dev_chae2ee
    꾸준히 하다보면 되겠지
    dev_chae2ee
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • DevOps (3)
      • React (1)
      • Spring (4)
      • DataHub (3)
      • 회고 (1)
      • 도서 개념 정리 (5)
      • Data Engineering (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 인기 글

  • 태그

    회고
    github
    임베디드
    SSAFY
    Kubernetes
    cherry-pick
    DevOps
    minikube
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
dev_chae2ee
[spring] - controller
상단으로

티스토리툴바