기술나눔

Spring 웹 MVC 시작하기

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

이 블로그를 읽고 나면 무엇을 배울 수 있나요?

  1. Spring Web MVC가 무엇인지 이해하기
  2. 스프링 MVC를 배우는 방법
  3. 일반적인 Spring Web MVC 주석 이해

텍스트

스프링 웹 MVC란 무엇입니까?
  • 제목에서 우리는 매우 생소한 명사를 볼 수 있습니다 "스프링 웹 MVC", 이 용어는 매우 고상하게 들리지만 정확히 무엇입니까? 공식 문서의 설명은 다음과 같습니다.
    Spring Web MVC는 Servlet API를 기반으로 구축된 독창적인 웹 프레임워크로 처음부터 Spring 프레임워크에 포함되었습니다. 공식 명칭 "Spring Web MVC"는 소스 모듈 이름(Spring-webmvc)에서 유래되었지만 종종 SpringMVC라고도 합니다.
  • 인간적으로 이해하지 못해도 상관없습니다.Spring Web MVC는 웹 프레임워크입니다.
    그러나 Spring MVC를 진정으로 이해하려면 MVC가 무엇인지 이해해야 합니다. 실제로 MVC는 Model View Controller의 약어로 소프트웨어 시스템을 모델로 구분합니다. , 보기 및 컨트롤러 세 가지 기본 부분은 아래 그림과 같습니다.
    여기에 이미지 설명을 삽입하세요.
    다음 부분의 정의를 요청할 수 있습니다.
    • 보기(view)는 브라우저와 상호작용하고 애플리케이션에 데이터를 표시하는 데 전념하는 리소스를 의미합니다.
    • 모델은 애플리케이션의 주요 부분이며 프로그램에서 데이터 로직을 처리하는 데 사용됩니다.
    • 컨트롤러는 뷰의 요청을 처리하는 데 사용해야 하는 모델과 처리 후 다시 이동해야 하는 뷰를 결정하는 데 사용되는 디스패처로 이해될 수 있습니다.뷰와 모델을 연결하는 데 사용할 준비가 되었습니다.

주요 프로세스는 다음과 같습니다. View는 Controller에 요청을 보냅니다. 이때 Controller 내에서 어떤 솔루션(솔루션 모델)이 요청을 해결할 수 있는지 선택합니다. 선택한 후 이를 처리할 솔루션을 선택하라는 명령을 Model에 보냅니다. 모델이 처리된 후 모델은 먼저 처리 결과를 컨트롤러에 반환한 다음 컨트롤러는 결과를 뷰에 반환합니다. 이것이 MVC의 주요 프레임워크이자 문제 해결을 위한 아이디어입니다.

예를 들어, 식당에 가서 밥을 먹으러 가다
고객이 매장에 입장하면 웨이터가 고객의 주문을 받기 위해 온다. 고객이 식사를 주문한 후, 고객의 메뉴를 프런트에 건네주고, 프런트는 고객의 메뉴를 바탕으로 주방에 주문을 내린다. 그 후에는 메뉴에 따라 웨이터에게 이것이 테이블 X의 손님을 위한 식사라고 말하세요.
이 과정에서
웨이터는 고객을 맞이하고, 고객이 음식을 주문하도록 돕고, 고객에게 음식을 서빙하는 역할을 담당하는 뷰입니다.
프론트 오피스는 사용자의 주문 상황에 따라 어떤 셰프에게 주문을 내릴지 선택하는 컨트롤러입니다.
뒤쪽 주방은 프론트 오피스의 요구 사항에 따라 고객의 식사 요구를 충족시키는 모델입니다.

  • 요약하면 MVC는 아키텍처 디자인 패턴이자 아이디어이며 Spring MVC는 MVC 아이디어의 특정 구현이기도 합니다.
    요약하면 Spring MVC는 MVC 패턴을 구현하는 웹 프레임워크입니다.
    SpringBoot는 SpringMVC의 특정 구현이므로 우리가 만드는 프로젝트는 일반적으로 SpringBoot입니다. 이것은 또한 일부 학생들이 만든 프로젝트가 SpringBoot인 이유를 설명합니다. Spring Boot는 많은 종속성을 추가할 수 있으며 이러한 종속성을 사용하여 Spring Boot는 Spring WebMVC 프레임워크를 추가하여 웹 기능을 구현합니다.
  • 예를 들어 주방은 요리를 할 수 있지만 실제 요리 기능은 불과 다양한 요리 관련 재료 및 도구입니다. 주방은 수납 기능과 가스를 구현하는 캐비닛을 갖추고 있습니다. 요리는 MVC입니다. 수천년 전에는 불과 음식으로 요리를 할 수 있었지만 Spring에서는 MVC를 구현하면서 몇 가지 변경 사항도 적용했습니다.

여기에 이미지 설명을 삽입하세요.

  • 위의 음식 주문 예시를 토대로 웨이터를 직접 불러 음식을 주문하는 대신, 레스토랑에 직접 들어가 프런트에서 직접 음식을 주문할 수 있다는 점이 가장 큰 변화이다.
Spring MVC를 배우는 방법은 무엇입니까?

Spring MVC가 무엇인지 간략하게 이해한 후에 Spring MVC를 배우는 방법에 대한 사전 이해를 가질 수 있습니다.
Spring MVC를 배울 때 초점은 브라우저를 통해 사용자 프로그램과 상호 작용하는 방법을 배우는 것입니다.
크게 다음 세 가지 측면으로 나누어집니다.

  1. 연결 설정: 사용자(브라우저)와 Java 프로그램을 연결합니다. 즉, 주소에 액세스하면 Spring 프로그램을 호출할 수 있습니다.
  2. 요청: 사용자는 요청을 할 때 일부 매개변수를 가져옵니다. 프로그램에서 매개변수를 얻는 방법을 찾아야 하므로 요청 부분은 주로 매개변수를 얻는 기능입니다.
  3. 응답(Response): 비즈니스 로직을 실행한 후에는 프로그램 실행의 결과, 즉 응답을 사용자에게 반환해야 합니다.
일반적인 Spring 웹 MVC 주석

우리가 가장 먼저 배우는 것은 연결입니다. Spring MVC 주석은 연결의 중요한 부분입니다. 따라서 내 블로그의 프레임워크 순서는 밀접하게 연관되어 있습니다. 주요 주제는 주요 내용을 구별할 수 있지만 주요 주제는 여전히 밀접하게 연관되어 있습니다. 더 이상 농담하지 말고 본론으로 들어가겠습니다.

  • 1. Spring MVC에서 @RequestMapping을 이용하여 브라우저 연결 프로그램의 역할인 URL 라우팅 매핑을 구현해보자. 먼저 코드 작성 방법을 살펴보자.
    여기에 이미지 설명을 삽입하세요.
    실행한 후 브라우저에 URL http://127.0.0.1:8080/hello를 입력하세요.
    효과를 보실 수 있습니다. 이 웹사이트가 왜 괜찮은지에 대해서는 지금 당장은 이해할 필요가 없지만, 공부가 깊어지면 앞으로는 확실히 알게 될 것입니다.
    효과는 같아요

여기에 이미지 설명을 삽입하세요.

  • 참고: src/main/java/com.example.j20240711 디렉터리에 파일을 생성한 것을 볼 수 있습니다. 일반적인 습관은 src에 일반 비즈니스 코드를 작성하고 텍스트에 테스트 코드를 작성하는 것입니다. 저는 IDEA2022.3.3 Professional 버전을 사용하고 있기 때문에 일부 페이지가 귀하의 것과 다를 수 있지만 일반적인 프레임워크는 동일합니다. 사실 표준 버전을 사용하여 Spring을 작성할 수도 있지만 플러그인을 설치하는 것이 더 번거롭습니다. 저는 문제를 해결하기 위해 Professional 버전을 선택했습니다. Professional 버전도 사용하고 싶다면 CSDN에서 튜토리얼을 검색해 보세요. 특정 웹사이트에 가서 저렴하게 구입할 수 있습니다. 가격이 매우 저렴하므로 전문가용 버전도 사용할 수 있습니다.
    @RequestMapping은 Spring 웹 MVC 애플리케이션에서 가장 일반적으로 사용되는 주석 중 하나입니다. 이는 인터페이스의 경로 매핑을 등록하는 데 사용됩니다. 이는 서비스가 요청을 받으면 /sayHi 경로가 있는 요청이 호출된다는 의미입니다. 이 메소드에 대한 코드입니다.
    경로 매핑: 사용자가 URL(웹 사이트 주소로 이해할 수 있음)에 액세스할 때 사용자의 요청을 프로그램 내 특정 클래스의 메서드에 매핑하는 프로세스를 경로 매핑이라고 합니다.
    주의 깊은 학생들은 위의 주석이 @RequestMapping 및 @RestController를 제거한다는 것을 알게 될 것입니다. 그렇다면 이 주석의 용도는 무엇입니까? 먼저 그를 제거하려고 노력할 수 있습니다.
    여기에 이미지 설명을 삽입하세요.

404가 나타나고 페이지를 찾을 수 없는 것을 볼 수 있습니다.

이것이 @RestController가 하는 일입니다.
프로젝트에는 많은 클래스가 있고 각 클래스에는 많은 메소드가 있을 수 있습니다. Spring 프로그램은 실행할 메소드를 어떻게 알 수 있습니까?
Spring은 모든 클래스를 검색합니다. 클래스에 @RestController 주석이 추가되면 Spring은 이 클래스의 메서드만 살펴봅니다.
@RequestMapping 주석을 추가했습니까? 물론 이 주석을 먼저 사용하고 나중에 자세히 설명하겠습니다.

  • @RequestMapping의 역할
    @RequestMapping은 클래스와 메소드를 모두 수정할 수 있으며, 클래스와 메소드 수정 시 접근되는 주소는 클래스 경로 + 메소드 경로이다.
    @RequestMapping은 클래스를 식별합니다. 매핑 요청의 요청 경로에 대한 초기 정보를 설정합니다.
    @RequestMapping은 매핑 요청 경로의 특정 정보를 설정하는 방법을 식별합니다.
package com.example.j20240711;
//这两个包都是你人为加入注解自动导入的,不用过于关注
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RequestMapping("auto")//这是类路径
@RestController
public class TextApplication {
    @RequestMapping("hello")//这是方法路径
    //这里的方法名不一定非得是hello,可以换成其他的。
    public String hello(){
        return "hello";
    }
}
//因此我们访问的时候,使用的网址应该是:http://127.0.0.1:8080/auto/hello
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 알아채다:
    @RequestMapping의 URL 경로 앞에 /(슬래시)가 올 수도 있고 없을 수도 있습니다. Spring 프로그램이 시작될 때 처음에 /가 없으면 Spring은 /를 이어붙일 것입니다.
    일반적으로 우리가 추가하는 URL 경로/@RequestMapping은 다중 계층 경로일 수도 있습니다. 최종적으로 액세스하면 여전히 다음과 같이 클래스 경로 + 메서드 경로입니다.
    ,
    위에서는 주로 두 가지 Annotation을 소개하고 있는데 사실 @RequestMapping에 대한 설명은 아직 따로 작성하고 블로그에 올리겠습니다.
    먼저 질문 하나 하겠습니다. 이 주석이 get 또는 post를 지원하는지 알고 싶다면 어떻게 해야 할까요?
    이때 데이터를 전송하고 get 또는 post를 지원하는지 확인하기 위해 일부 프런트엔드 코드를 작성해야 합니다. 그러나 순수 백엔드 사용자의 경우 프런트엔드 코드 작성 방법을 아직 이해하지 못합니다. 시간이 지나면 소프트웨어 Postman의 효과가 반영되며 다음 호에서는 그 사용법에 대해 이야기하겠습니다.
    다음 호 미리보기: Postman의 주요 사용법과 Spring MVC 학습의 두 번째 핵심 포인트인 요청에 대해 설명합니다.