Kotlin SpringBoot. Часть 00 Создание и запуск приложения


ПОЧЕМУ.

Я хотел создать REST API на Kotlin x Spring с чистой архитектурой и написать тесты.

https://qiita.com/kawasaki_dev/items/1a188878eb6928880256

Мы будем использовать это в качестве справочника.


Цель.

  • Подключен к БД postgres
  • Все функции имеют Unit-тесты и написаны EndtoEnd-тесты

Оглавление

  1. Создание приложения Kotlin Springboot на сайте Spring Initializer, открытие и запуск его в IntelliJ
  2. Использование контроллера и Getmapping для передачи данных в Tymleaf Template Html, чтобы он мог отображаться в Интернете
  3. Создайте Driver Usecase с объектом-компаньоном и вызовите его в Main через Usecase.
  4. Переименуйте Controller в Resource и вызовите Usecase как Rest.
  5. Создайте домен и используйте драйвер для упаковки данных в домен и их возврата.
  6. Прекратите использовать объект-компаньон и создайте экземпляры класса, и вызывайте каждый слой из каждого экземпляра.
  7. Создайте сущность в Driver и заполните ее доменом в Gateway.
  8. Создайте расширение для подготовки к преобразованию домена в JSON в Rest, а также для преобразования его в JSON в gson и вывода его.
  9. (По расписанию) Сделайте создание экземпляра автоматическим с помощью функции Component.
  10. (Запланировано) Создайте функцию для фильтрации по возрасту в Domain и запустите ее в Usecase.
  11. (Планируется) Соедините Usecase и шлюз с помощью интерфейса под названием Port.

Создание приложений в Интернете с помощью Spring Initializer

https://start.spring.io/

Похоже, что на этом сайте можно сделать шаблон.

https://qiita.com/kawasaki_dev/items/1a188878eb6928880256#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E9%9B%9B%E5%BD%A2%E3%82%92%E4%BD%9C%E6%88%90

Согласно статье

Используйте имя артефакта springboot

Установите язык на Kotlin.

Строитель проекта? Выберите Groovey в качестве конструктора проектов.

Spring Web (основа для создания MVC и REST? )
Thymleaf (Шаблонный движок для создания HTML)
Spring Data JPA (обёртка SQL)
База данных H2 (Вы можете легко создать MySQL или что-то подобное? )

Добавьте эти зависимости

Java переходит от статьи 11 к статье 17.
Springboot изменен до версии 2.7.2.

https://start.spring.io/#!type=gradle-project&language=kotlin&platformVersion=2.7.2&packaging=jar&jvmVersion=17&groupId=com.example&artifactId=springboot&name=springboot&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.springboot&dependencies=web,thymeleaf,data-jpa,h2

Такую же конфигурацию можно создать, перейдя по этому URL.
Запрос, по-видимому, содержит версию и другую информацию.

Если вы нажмете кнопку Genarate
Она становится застегнутой, а DL — возможной.
Похоже, что это то же самое, что и Ktor.


Откройте с помощью IntelliJ и запустите проект.

Если в данный момент что-то открыто, закройте проект, а затем
Откройте проект из нового, неоткрытого состояния.
Если вы не сделаете этого

Если этого не сделать, то ничего из модуля не будет загружено.

Если закрыть все и открыть с привычного экрана JetBrains
Он успешно загружен.
Весну можно начинать.

fun main(args: Array<String>) {
    runApplication<SpringbootApplication>(*args)
    println("kt")
}
Войдите в полноэкранный режим Выход из полноэкранного режима

2022-08-08 07:22:40.110 INFO 1036058 — [ main] c.e.springboot.SpringbootApplicationKt : Started SpringbootApplicationKt in 2.191 seconds (JVM бег за 2.55)
kt

Если вы поместите печать между ними, она будет печататься правильно.


Просмотрите зависимые библиотеки в конфигурационном файле gradle

https://spring.pleiades.io/guides/tutorials/spring-boot-kotlin/

Если вы посмотрите на build.gradle.kts
Вы можете увидеть, от каких библиотек он зависит.

plugins {
    id("org.springframework.boot") version "2.7.2"
    id("io.spring.dependency-management") version "1.0.12.RELEASE"
    kotlin("jvm") version "1.6.21"
    kotlin("plugin.spring") version "1.6.21"
    kotlin("plugin.jpa") version "1.6.21"
}
Войдите в полноэкранный режим Выход из полноэкранного режима

plugins показывает основные библиотеки

  • Spring Boot 2.7.2
  • JVM, spring plugins, JPA, these 1.6.21

В ней упоминается использование этих библиотек в качестве базовых.

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    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")
    runtimeOnly("com.h2database:h2")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}
Войдите в полноэкранный режим Выход из полноэкранного режима
  • JPA
  • ThymeLeaf
  • Web
  • База данных H2

Мы подтвердили, что они включены в качестве библиотек расширения.

JPA, Thymleaf и H2, версии которых здесь недоступны.


Резюме.

Чтобы создать приложение Springboot на языке Kotlin
Создайте &DL с помощью Spring Initializer
Распакуйте его локально.
Откройте его в IntelliJ, не открывая ничего.
Это все, что вам нужно сделать для его создания.


В будущем

https://spring.pleiades.io/guides/tutorials/spring-boot-kotlin/

Прочитайте руководство Kotlin Spring.

https://qiita.com/kawasaki_dev/items/1a188878eb6928880256#%E5%8F%82%E8%80%83%E6%83%85%E5%A0%B1

Попробуйте CRUD в MVC

Попробуйте CRUD в REST

Попробуйте изменить тесты на Gauge/Selenide

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