CodeGym /Java Blog /무작위의 /Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다.
John Squirrels
레벨 41
San Francisco

Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다.

무작위의 그룹에 게시되었습니다
이 자료는 "엔터프라이즈 개발 소개" 시리즈의 마지막 부분입니다. 이전 기사: Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 1Spring MVC를 예로 들어 가장 간단한 MVC 구현을 살펴보자. 이를 위해 Spring Boot를 사용하여 작은 Hello World 애플리케이션을 작성합니다. 모든 것을 스스로 반복할 수 있도록 단계별 지침을 제공합니다. 먼저 작은 애플리케이션을 작성한 다음 분석합니다.

1단계. IntelliJ IDEA에서 Spring Boot 애플리케이션 생성

파일 -> 새로 만들기 -> 프로젝트…를 사용하여 새 프로젝트를 만듭니다. 열리는 창의 왼쪽 메뉴에서 Spring Initializr를 선택하고 프로젝트 SDK를 선택합니다. Initializr Service URL 옵션의 기본값을 그대로 둡니다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 2"다음" 버튼을 클릭합니다. 다음 창에서 프로젝트 설정을 선택해야 합니다. 우리는 Maven 프로젝트를 가질 것입니다. 유형으로 Maven 프로젝트를 선택합니다. 그룹 및 아티팩트 필드를 채우십시오. 다음을 클릭하십시오. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 3다음 창에서 사용할 Spring Framework 구성 요소를 선택해야 합니다. 두 개면 충분합니다.
  • Spring Web은 웹 애플리케이션을 만들 수 있게 해주는 구성 요소입니다. 이 구성 요소에는 Spring MVC가 포함됩니다.
  • Thymeleaf는 템플릿 엔진입니다. Java에서 HTML 페이지로 데이터를 보낼 수 있는 기능입니다.
Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 4Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 5다음 창에서 파일 시스템의 프로젝트 이름과 위치를 선택합니다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 6"마침" 버튼을 클릭합니다. 프로젝트가 생성됩니다. 우리는 다음과 같은 프로젝트 구조로 끝납니다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 7여기서 우리는 pom.xml(배포 설명자)이라는 2개의 파일에 관심이 있습니다. 이를 통해 다양한 프레임워크의 라이브러리를 우리 프로젝트로 쉽고 빠르게 가져올 수 있습니다. 또한 애플리케이션 구축 방법을 구성하는 곳이기도 합니다. 우리 애플리케이션은 Maven을 사용하여 빌드되었으며 pom.xml은 이 빌드 시스템의 구성 파일입니다. Java 클래스는 MvcDemoApplication입니다. 이것은 우리 애플리케이션의 메인 클래스입니다. 여기에서 Spring Boot 프로젝트를 시작할 것입니다. 시작하려면 이 클래스의 기본 메서드를 실행하기만 하면 됩니다. 다음은 이 클래스의 코드와 pom.xml 파일입니다. MvcDemoApplication:

@SpringBootApplication
public class MvcDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MvcDemoApplication.class, args);
    }

}
pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codegym/groupId>
    <artifactId>mvc_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvc_demo</name>
    <description>Spring MVC Demo</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2단계. 웹페이지 만들기

우리의 응용 프로그램은 매우 간단합니다. 시작 페이지(greeting.html)에 대한 링크가 포함된 기본 페이지(index.html)가 있습니다. 인사말 페이지에 인사말을 표시합니다. URL 매개변수를 사용하여 인사말에 사용할 이름을 greeting.html 페이지로 전달합니다. 애플리케이션의 기본 페이지인 index.html을 만들어 보겠습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Main page</title>
</head>
<body>
    <p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
이제 greeting.html 페이지를 만들겠습니다.

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
우리 페이지에는 <p th:text="'Hello, ' + ${name} + '!'" />HTML에 일반적이지 않은 태그가 있습니다. th태그 의 속성은 Thymeleaf p템플릿 엔진에서 사용하는 메커니즘입니다. 태그 의 값은 "Hello" + Java 코드에서 설정할 변수 p의 값입니다 . name

3단계. 컨트롤러 생성

mvc_demo 패키지 내에서 컨트롤러 HelloWorldController를 생성할 컨트롤러 패키지를 생성합니다.

@Controller
public class HelloWorldController {

   @RequestMapping(value = "/greeting")
   public String helloWorldController(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
       model.addAttribute("name", name);
       return "greeting";
   }

}
한편으로는 코드가 매우 적지만 다른 한편으로는 진행 중인 코드가 많습니다. 분석을 시작하겠습니다. @Controller 주석은 이 클래스가 컨트롤러임을 나타냅니다. Spring에서 컨트롤러는 특정 URL로 향하는 HTTP 요청을 처리합니다. 우리 클래스에는 @RequestMapping(value = "/greeting") 주석으로 표시된 helloWorldController 메서드가 있습니다. 이 주석은 이 메서드가 /greeting URL로 향하는 HTTP GET 요청을 처리함을 나타냅니다. 즉, 누군가 /greeting으로 이동하면 이 메서드가 호출됩니다. 이 메서드는 문자열을 반환합니다. Spring MVC에 따르면 컨트롤러 메서드는 뷰의 이름을 반환해야 합니다. 다음으로 Spring은 HTTP 요청에 대한 응답으로 반환할 동일한 이름의 HTML 파일을 찾습니다. 보시다시피, 우리의 방법은 2개의 인자를 취합니다. 매개변수 1: @RequestParam(name = "name", required = false, defaultValue = "World") 문자열 이름. @RequestParam 주석은 문자열 이름 매개변수가 URL 매개변수임을 나타냅니다. 주석이 이 URL 매개변수가 선택사항(필수 = false)임을 나타내는 경우, 없으면 문자열 이름 매개변수의 값은 "World"(defaultValue = "World")가 됩니다. 존재하는 경우 URL 매개변수는 "name"(이름 = "name")이 됩니다. 여기에서 이해하지 못하는 것이 많을 수 있습니다. 몇 가지 예를 들어 보겠습니다. 아래 표는 /greeting에 액세스하기 위한 다양한 옵션(URL 매개변수 포함 및 제외)과 함께 문자열 이름 매개변수의 값이 무엇인지 보여줍니다.
예시 URL 문자열 이름 값
/인사 세계
/인사말?이름=아미고 아미고
/인사말?이름=조르 조르
매개변수 2: 두 번째 매개변수는 모델 모델입니다. 이 매개변수는 일부 모델입니다. 이 모델은 다양한 내부 속성으로 구성됩니다. 각 속성에는 이름과 값이 있습니다. 키-값 쌍과 같은 것. 이 매개변수를 사용하여 Java 코드에서 HTML 페이지로 데이터를 보낼 수 있습니다. 또는 MVC 용어를 사용하여 모델에서 뷰로 데이터를 보냅니다. 마지막 줄만 검토하면 됩니다. Java에서 HTML로 또는 모델에서 뷰로 데이터를 보내는 방법입니다. 메소드에는 다음 행이 포함됩니다. model.addAttribute("name", name); 여기서는 name이라는 새 속성을 작성하고 여기에 name 매개변수의 값을 지정합니다. 우리는 최근에 <p th:text = "'Hello,' + ${name} + '!'" /> p 태그의 값이 "Hello" + 이름 변수의 값이며 Java 코드에서 설정할 것이라고 말했습니다. 라인을 사용하여 이 값을 설정합니다. model.addAttribute("name", name);

5단계. 실행

시작하려면 MvcDemoApplication 클래스의 기본 메서드를 실행해야 합니다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 9로그에서 웹 애플리케이션이 포트 8080에서 시작되었음을 확인할 수 있습니다. 이는 브라우저에서 http://Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 10 페이지로 이동할 수 있음을 의미합니다. localhost:8080 : Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 11여기에 index.html 페이지가 있습니다. 인사말 페이지에 대한 링크를 따라가 봅시다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 12이 전환에서 컨트롤러가 호출되었습니다. URL을 통해 매개변수를 전달하지 않았습니다. 결과적으로 name 속성은 주석에 표시된 기본값("World")을 사용합니다. URL을 통해 매개변수를 전달해 보겠습니다. Part 8. Spring Boot를 사용하여 작은 애플리케이션을 작성해 봅시다 - 13모든 것이 의도한 대로 작동합니다. 이제 이름 변수의 경로를 추적해 보십시오.
  1. 사용자가 URL에 "name=Amigo"를 전달했습니다. ->
  2. 컨트롤러는 우리의 행동을 처리하고, 이름 변수를 받고, 이름이라는 모델 속성을 받은 값과 동일하게 설정합니다. ->
  3. 이 데이터는 모델에서 보기 위해 왔으며 Greeting.html 페이지에서 끝나고 사용자에게 표시되었습니다.
지금은 그게 다야!

오늘 우리는 MVC(Model - View - Controller)라는 상당히 크고 흥미로운 주제에 대해 알게 되었습니다. 이것은 엔터프라이즈 개발을 시작하기 전에 알아야 할 사항을 소개하도록 설계된 시리즈의 끝입니다.

댓글에 어떤 주제에 관심이 있는지 알려주세요 — 우리가 그 주제를 다룰 것입니다!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION