Kotlin Springboot -- Part 3 컨트롤러 を 리소스 層にして Usecase につなげる

6879 단어 cakotlinspringboot

HTMLController を SpringbootResource にする




package com.example.springboot

import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.ui.set
import org.springframework.web.bind.annotation.GetMapping

@Controller
class HtmlController {
    @GetMapping("/")
    fun nanika(model: Model): String {
        model["title"] = "SpringBlog"
        return "index"
    }
}


これが HtmlContorller.kt というファylで書かれていて



アプリを起動すると index に渡したものを表示する

MVC のアーキンにしたがっ て 콘트로라 と名付けていた

CA に変えるので リソースにする

@Controller
class SpringbootResource {
    @GetMapping("/")
    fun root(model: Model): String {
        model["title"] = "Springboot Root"
        return "index"
    }
}


これでりソースとして使う.


Usecase を呼びやすくする




fun getTaroHanakoName():String {
    val taroName = taro.findName()
    val hanakoName = hanako.findName()
    return "$taroName,$hanakoName";
}


Usecase の関数を呼びやすいまとめるものにする


SpringbootResource와 모델 및 템플릿 を噛ませながら Usecase を呼ぶ




   @GetMapping("/names")
    fun taro(model:Model): String {
        model["title"] = getTaroHanakoName()
        return "index"
    }


모델과 인덱스 のTENPREIGHTを噛ませて
유스케이스 からの値を出力する



これで/names にアクセスした時に Usecase -> Driver まで動いて
中身を web に出せた.

2022-08-29 00:14:57.777 ERROR 1463816
 --- [nio-8080-exec-1] org.thymeleaf.TemplateEngine             : 
[THYMELEAF][http-nio-8080-exec-1] 
Exception processing template "Taro": 

Error resolving template [Taro], 
template might not exist or might not be accessible 
by any of the configured Template Resolvers


なお、 Thymleaf を使ってしまっているので
템플릿 와 모델 나시로直接 Usecase を
Getmapping に噛ませ用途する과 失敗する.

まとめ



Kotlin Springboot 에서 Rest/Resource 層から
Usecase -> Driver としてデータをとってくるため에

旧来の Controller の書き方で書いて、名前を Resource にして
Usecase の呼び出しの結果を 모델 に渡して
template で表示する.

좋은 웹페이지 즐겨찾기