Добавление класса данных в проект Spring Boot
В этой части учебника вы добавите новые функции в приложение и познакомитесь с дополнительными возможностями языка Kotlin, такими как классы данных. Это требует изменения класса MessageController для ответа с JSON-документом, содержащим коллекцию сериализованных объектов.
Обновление вашего приложения
-
В файле
DemoApplication.ktсоздайте класс данныхMessageс двумя свойствами:idиtext:data class Message(val id: String?, val text: String)
Класс
Messageбудет использоваться для передачи данных: список сериализованных объектовMessageсоставит JSON-документ, на который контроллер ответит в ответ на запрос браузера.- Классы данных – класс данных Message
-
Основное назначение классов данных в Kotlin – хранение данных. Такие классы помечаются ключевым словом
data, и некоторые стандартные функции и утилиты часто автоматически выводятся из структуры класса.В этом примере вы объявили
Messageкак класс данных, поскольку его основное назначение – хранение данных. - Свойства val и var
-
Свойства в классах Kotlin могут быть объявлены как:
изменяемые, используя ключевое слово
varтолько для чтения, используя ключевое слово
val
Класс
Messageобъявляет два свойства, используя ключевое словоval,idиtext. Компилятор автоматически сгенерирует геттеры для обоих свойств. После создания экземпляра классаMessageзначения этих свойств изменить будет невозможно. - Типы с возможностью значения null – String?
-
Kotlin предоставляет встроенную поддержку типов с возможностью значения null. В Kotlin система типов различает ссылки, которые могут содержать
null(ссылки с возможностью значения null) и те, которые не могут (ссылки без возможности значения null).
Например, обычная переменная типаStringне может содержатьnull. Чтобы разрешить null, вы можете объявить переменную как строку с возможностью значения null, написавString?.Свойство
idклассаMessageна этот раз объявлено как тип с возможностью значения null. Таким образом, можно создать экземпляр классаMessage, передавnullв качестве значения дляid:Message(null, "Hello!")
-
В том же файле измените функцию
index()классаMessageControllerтак, чтобы она возвращала список объектовMessage:@RestController class MessageController { @GetMapping("/") fun index() = listOf( Message("1", "Hello!"), Message("2", "Bonjour!"), Message("3", "Privet!"), ) }- Коллекции – listOf()
-
Стандартная библиотека Kotlin предоставляет реализации основных типов коллекций: множества, списки и карты.
Каждый тип коллекции представлен парой интерфейсов:Интерфейс только для чтения, предоставляющий операции для доступа к элементам коллекции.
Интерфейс изменяемый, расширяющий соответствующий интерфейс только для чтения с операциями записи: добавление, удаление и обновление его элементов.
Соответствующие функции-фабрики также предоставляются стандартной библиотекой Kotlin для создания экземпляров таких коллекций.
В этом учебнике вы используете функцию
listOf()для создания списка объектовMessage. Это функция-фабрика для создания списка только для чтения: вы не можете добавлять или удалять элементы из списка.
Если требуется выполнить операции записи со списком, вызовите функциюmutableListOf()для создания экземпляра изменяемого списка. - Завершающая запятая
-
Завершающая запятая — это символ запятой после последнего элемента в ряду элементов:
Message("3", "Privet!"),Это удобная функция синтаксиса Kotlin и полностью необязательная — ваш код по-прежнему будет работать без нее.В приведенном выше примере создание списка объектов
Messageвключает завершающую запятую после последнего аргумента функцииlistOf().
Ответ от MessageController теперь будет JSON-документом, содержащим коллекцию объектов Message.
Вот полный код DemoApplication.kt:
Запуск приложения
Приложение Spring готово к запуску:
Запустите приложение еще раз.
-
После запуска приложения откройте следующий URL:
http://localhost:8080
Вы увидите страницу с набором сообщений в формате JSON:

Следующий шаг
В следующей части учебника вы добавите и настройте базу данных в свой проект и выполните запросы HTTP.
Получение карты языка Kotlin
Получите свою личную карту языка, чтобы помочь вам в навигации по функциям Kotlin и отслеживании вашего прогресса в изучении языка. Мы также будем отправлять вам советы по языку и полезные материалы по использованию Kotlin с Spring.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/jvm-spring-boot-add-data-class.html