Gradle + Kotlin + Thymeleaf에서 Hello World

소개



ㅎㅎㅎ 입니다.
평소에는 toB의 업무 시스템을 만들고 있습니다.
사내에서의 기술의 업데이드가 없기 때문에 개인적으로 여러가지 배우려고 생각해, 처음에 Spring Boot로 간단한 프로젝트를 만들려고 했습니다만 생각보다 걸리거나 했으므로 비망도 겸해 작성해 보았습니다.

이 기사는 Spring을 만지지 않은 사람들을위한 것입니다.

개요



환경
  • Windows10 Pro 1903
  • IntelliJ IDEA 2019.1.3 (Community Edition)
  • Jdk 11 (Amazon Corretto)

  • 목차
  • Spring Initializr에서 프로젝트 만들기
  • 프로젝트 가져오기
  • Controller 만들기
  • Template 만들기
  • 프로젝트 실행

  • Spring Initializr로 프로젝트 만들기



    큰 프레임은 Spring Initializr 으로 작성합니다.

    아래의 순서대로 설정합니다.
    ■ Project
    Gradle Project

    ■ Language
    Kotlin

    ■ Spring Boot
    2.1.6(2019/07/15 시점)

    ■ Project Metadata
    Group: com.example
    Artifact: helloworld
    (이번에는이 이름을 사용합니다)
    Options에서 Java를 11로 설정합니다.

    ■ Dependencies
    Developer Tools의 "Spring Boot DevTools"
    웹의 "Spring Web Starter"
    Template Engines의 'Thymeleaf'
    에 체크를 넣습니다.

    Generate에서 프로젝트를 다운로드하고 압축을 푼 파일을 적절한 위치에 배치합니다.

    프로젝트 가져오기



    IDEA를 엽니다.


    Import Project를 선택하고 압축을 푼 파일을 선택합니다.
    첫 번째 설정 화면에서 Import project from external model > Gradle을 선택합니다.


    다음 화면에서 Use auto-import 및 Create directories for empty content roots automatically를 선택합니다.
    ※Gradle JVM의 설정을 잘못하면 제대로 작동하지 않습니다.


    프로젝트를 열고 build.gradle.kts를 확인합니다.
    (kts가 붙은 것은 비교적 최근인 것 같습니다→ build.gradle.kts로 마이그레이션 )

    helloworld\build.gradle.kts의 dpendencies는 다음과 같아야합니다.

    build.gradle.kts
    dependencies {
        implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
        implementation("org.springframework.boot:spring-boot-starter-web")
        implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
        implementation("org.jetbrains.kotlin:kotlin-reflect")
        implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
        developmentOnly("org.springframework.boot:spring-boot-devtools")
        testImplementation("org.springframework.boot:spring-boot-starter-test")
    }
    

    devtools, web, thymeleaf 등을 확인할 수 있습니다.

    컨트롤러 작성



    helloworld/src/main/kotlin/아래에 com.example.helloworld.HelloworldApplication이 있지만 이번에는 편집할 필요가 없습니다.
    HelloworldApplication과 동일한 계층 구조에 HelloworldController의 클래스를 만들고 다음과 같이 작성합니다.

    HelloworldController.kt
    package com.example.helloworld
    
    import org.springframework.stereotype.Controller
    import org.springframework.ui.Model
    import org.springframework.web.bind.annotation.GetMapping
    
    @Controller
    class HelloworldController {
    
        @GetMapping("/helloworld")
        fun helloworld(model: Model): String {
            model.addAttribute("message", "Hello World!")
            return "helloworld"
        }
    
    }
    

    어노테이션에 대해서는 아래의 기사에 여러가지 써 있습니다.
    Spring Framework Controller의 기본 주석

    템플릿 만들기



    그런 다음 helloworld/src/main/resources/templates 아래에 html 파일을 만듭니다.
    xmlns:th="h tp // w w. thy 메아아 f. 오 rg "
    th:text="${message}"
    의 둘레가 Thymeleaf와 관련이 있습니다.

    helloworld.html
    <!DOCTYPE html>
    <html lang="ja" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>HelloWorld</title>
    </head>
    <body>
        <h1 th:text="${message}"></h1>
    </body>
    </html>
    

    프로젝트 실행



    파일 작성이 끝나면 화면 왼쪽 상단의 View > Tool Windows > Gradle을 엽니다.


    그러면 오른쪽에 ↓와 같은 화면이 표시됩니다.
    helloworld > Tasks > application > bootrun을 선택하면 프로젝트가 실행됩니다.


    콘솔에 다음 로그가 표시되면 http://localhost:8080/helloworld을 엽니다.
    [restartedMain] c.e.helloworld.HelloworldApplicationKt : Started HelloworldApplicationKt in 7.576 seconds (JVM running for 10.035)

    이런 화면이 나오면 성공입니다.


    사이고에게



    Spring Initializr를 사용하면 서버 시작까지 간단하게 할 수 있으므로 초보자라도 다루기 쉽다고 생각합니다.
    (간단한 것이라면 build.gradle의 설정 등이 불필요하기 때문에)

    참고

    Spring Boot에서 Thymeleaf 사용법 메모

    좋은 웹페이지 즐겨찾기