JavaRush /Java Blog /Random-KO /8부. spring-boot로 작은 애플리케이션 작성하기

8부. spring-boot로 작은 애플리케이션 작성하기

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

1단계: IntelliJ IDEA에서 스프링 부트 애플리케이션 생성

파일 -> 새로 만들기 -> 프로젝트를 사용하여... 새 프로젝트를 만듭니다. 열리는 창의 왼쪽 메뉴에서 Spring 초기화를 선택하고 프로젝트 SDK를 선택한 후 초기화 서비스 URL 옵션을 기본값으로 둡니다. 8부. spring-boot에서 작은 애플리케이션 작성 - 2다음 버튼을 클릭하세요. 다음 창에서는 프로젝트 매개변수를 선택해야 합니다. 우리는 Maven 프로젝트를 갖게 될 것입니다. 유형 - Maven 프로젝트를 선택하고 그룹 및 아티팩트를 입력한 후 8부. spring-boot에서 작은 애플리케이션 작성 - 3다음을 클릭하십시오. 다음 창에서는 사용할 Spring Framework 구성 요소를 선택해야 합니다. 우리는 두 가지만 필요합니다:
  • Spring Web은 웹 애플리케이션을 생성할 수 있게 해주는 컴포넌트입니다. 이 구성 요소에는 Spring MVC가 포함되어 있습니다.
  • Thymeleaf - 소위 템플릿 엔진입니다. Java에서 HTML 페이지로 데이터를 전송할 수 있게 해주는 것
8부. spring-boot에서 작은 애플리케이션 작성 - 48부. spring-boot에서 작은 애플리케이션 작성 - 5다음 창에서 파일 시스템의 프로젝트 이름과 위치를 선택합니다. 8부. spring-boot로 작은 애플리케이션 작성 - 6마침 버튼을 클릭합니다. 프로젝트가 생성되었습니다. 우리는 다음과 같은 프로젝트 구조를 가지고 있습니다. 8부. spring-boot로 작은 애플리케이션 작성 - 7여기에서는 pom.xml - 배포 설명자라는 두 개의 파일에 관심이 있습니다. 다양한 프레임워크의 라이브러리를 프로젝트로 빠르고 쉽게 가져올 수 있을 뿐만 아니라 애플리케이션 어셈블리를 구성하는 기능도 있습니다. 우리 애플리케이션은 Maven을 사용하여 빌드되었으며 pom.xml은 이 빌드 시스템의 구성 파일입니다. Java 클래스 - MvcDemoApplication. 이것은 스프링 부트 프로젝트를 시작할 애플리케이션의 메인 클래스입니다. 시작하려면 이 클래스의 기본 메서드를 실행하면 됩니다. 다음은 이 클래스의 코드와 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.javarush</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단계. 웹페이지 생성

우리의 응용 프로그램은 매우 간단합니다. 기본 페이지인 index.html이 있고 그 안에 환영 페이지인 Greeting.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>
여기서는 비정형 HTML 페이지에서 태그를 볼 수 있습니다. 태그 <p th:text="'Hello, ' + ${name} + '!'" /> 속성은 Thymeleaf 템플릿 엔진의 도구입니다. 덕분에 태그의 값은 "Hello"라는 텍스트 + Java 코드에서 설정할 변수의 값이 됩니다 .thppname

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의 컨트롤러는 특정 주소에 대한 HTTP 요청을 처리합니다. 우리 클래스에는 @RequestMapping(value = "/greeting")이라는 주석이 표시된 helloWorldController 메서드가 있습니다. 이 주석은 이 메서드가 /greeting 주소에 대한 HTTP GET 요청을 처리한다는 것을 알려줍니다. 즉, 누군가가 /greeting로 이동하면 이 방법이 작동합니다. 이 메서드는 문자열을 반환합니다. Spring-MVC에 따르면 컨트롤러 메서드는 뷰의 이름을 반환해야 합니다. 다음으로 Spring은 HTTP 요청에 대한 응답으로 반환될 동일한 이름의 html 파일을 찾습니다. 보시다시피, 우리의 메소드는 이전에 만든 웹페이지의 이름인 Greeting을 반환합니다. 우리의 방법은 2개의 인수를 사용합니다. 매개변수 1: @RequestParam(name = "name", 필수 = false, defaultValue = "World") 문자열 이름. @RequestParam 주석은 String name 매개변수가 url 매개변수임을 명시합니다. 주석 괄호는 URL에서 이 매개변수가 선택사항(필수 = false)임을 나타냅니다. 이 매개변수가 없으면 문자열 이름 매개변수의 값은 World(defaultValue = "World")가 되고, 존재하면 이 매개변수는 URL에서는 이름(name = "name")이 호출됩니다. 여기에는 명확하지 않은 내용이 많이 있을 수 있습니다. 예를 들어 보겠습니다. 아래 표는 /greeting 주소에 액세스하기 위한 다양한 옵션에 대한 문자열 이름 매개변수의 값을 보여줍니다(URL에 매개변수가 있거나 없음).
예시 URL 문자열 이름 매개변수 값
/인사 세계
/greeting?name=아미고 아미고
/인사말?name=조르 조르
매개변수 2: 두 번째 매개변수는 모델 모델입니다. 이 매개변수는 모델입니다. 이 모델은 내부적으로 다양한 속성으로 구성됩니다. 각 속성에는 이름과 값이 있습니다. 키-값 쌍과 같은 것입니다. 이 매개변수를 사용하여 Java 코드에서 HTML 페이지로 데이터를 전송할 수 있습니다. 또는 MVC 용어로 모델에서 뷰로 데이터를 전송합니다. 마지막 줄을 구문 분석하는 것이 남아 있습니다. Java에서 html로 또는 모델에서 뷰로 데이터를 전달하는 방식입니다. 메소드의 본문에는 다음 행이 포함됩니다. model.addAttribute("name", name); 여기서는 name이라는 새 속성을 생성하고 여기에 name 매개변수의 값을 할당합니다. 최근에 우리는 태그에 대해 논의했다는 것을 기억하십시오. <p th:text="'Hello, ' + ${name} + '!'" /> p 태그의 값은 "Hello"라는 텍스트 + Java 코드에서 설정할 name 변수의 값이 될 것이라고 말했습니다. 우리는 다음 라인을 사용하여 이 값을 설정합니다. model.addAttribute("name", name);

5단계. 실행

시작하려면 MvcDemoApplication 클래스의 기본 메서드를 실행해야 합니다. 8부. spring-boot로 작은 애플리케이션 작성 - 9시작 로그에서 웹 애플리케이션이 포트 8080에서 시작된 것을 볼 수 있습니다. 이는 브라우저에서 http://8부. spring-boot로 작은 애플리케이션 작성 - 10 페이지로 이동할 수 있음을 의미합니다. localhost:8080 : 8부. spring-boot에서 작은 애플리케이션 작성 - 11여기에 index.html 페이지가 표시되었습니다. 다음 링크를 따라가세요. 8부. spring-boot로 작은 애플리케이션 작성 - 12이 전환 중에 컨트롤러가 작동했습니다. URL을 통해 매개변수를 전달하지 않았으므로 주석에 명시된 대로 name 속성의 값은 기본값인 World를 사용합니다. 이제 URL을 통해 매개변수를 전달해 보겠습니다. 8부. spring-boot로 작은 애플리케이션 작성 - 13모든 것이 의도한 대로 작동합니다. 이제 name 변수의 경로를 추적해 보십시오.
  1. 사용자가 url을 통해 매개변수 이름 = Amigo -> 값을 전달했습니다.
  2. 컨트롤러는 우리의 작업을 처리하고, name 변수를 수락하고, name 이름과 허용된 값으로 모델 속성을 설정합니다. ->
  3. 모델에서 이 데이터는 View, Greeting.html 페이지로 이동하여 사용자에게 표시되었습니다.
그게 다야!

오늘 우리는 MVC(모델 - 뷰 - 컨트롤러)라는 다소 크고 흥미로운 주제를 소개했습니다. 이것은 시리즈의 마지막이며, 그 목적은 엔터프라이즈 개발을 시작하기 전에 알아야 할 사항을 소개하는 것입니다.

관심 있는 주제를 댓글로 남겨주세요. 저희가 해드리겠습니다!

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