Kotlin Springboot. Часть 3 Создание контроллера как слоя ресурсов и его подключение к Usecase


Сделать 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.

Когда приложение запускается, оно отображает то, что передано в 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 легко вызываемыми


Вызовите Usecase с помощью SpringbootResource, чередуя Model и Template.

   @GetMapping("/names")
    fun taro(model:Model): String {
        model["title"] = getTaroHanakoName()
        return "index"
    }
Войдите в полноэкранный режим Выход из полноэкранного режима

Модель прикуса и шаблоны указателей
Выходные значения из Usecase

Теперь при обращении к /names выполняется Usecase -> Driver
Я смог разместить содержимое в Интернете.

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 напрямую без Template и Model.
Usecase напрямую без шаблона и модели.
Если вы используете Getmapping непосредственно с Usecase без шаблона и модели, это приведет к неудаче.

Резюме

Из слоя Rest/Resource в Kotlin Springboot
Usecase -> Для получения данных из слоя Rest/Resource в качестве Driver

Напишите его в старом стиле письма контроллера и назовите его «Ресурс».
Передайте результат вызова Usecase в модель.
Отображение в шаблоне.

Оцените статью
devanswers.ru
Добавить комментарий