Spring Boot: поддержка Kotlin, требования, null безопасность

Kotlin - это статически типизированный язык, предназначенный для JVM (и других платформ), который позволяет писать лаконичный и элегантный код, обеспечивая при этом совместимость с существующими библиотеками, написанными на Java.

Spring Boot обеспечивает поддержку Kotlin, используя поддержку других проектов Spring, таких как Spring Framework, Spring Data и Reactor.

Требования

Spring Boot поддерживает Kotlin 1.3.x. Чтобы использовать Kotlin, в пути к классам должны присутствовать org.jetbrains.kotlin:kotlin-stdlib и org.jetbrains.kotlin:kotlin-reflect. Варианты kotlin-stdlib kotlin-stdlib-jdk7 и kotlin-stdlib-jdk8 также могут быть использованы.

Так как классы Kotlin по умолчанию являются окончательными, вы, вероятно, захотите настроить плагин kotlin-spring, чтобы автоматически открывать классы, аннотированные Spring, чтобы их можно было проксировать.

Модуль Jackson Kotlin необходим для сериализации/десериализации данных JSON в Kotlin. Он автоматически регистрируется при обнаружении на пути к классам. Предупреждающее сообщение регистрируется, если присутствуют Jackson и Kotlin, но нет модуля Jackson Kotlin.

Эти зависимости и плагины предоставляются по умолчанию, если загружать проект Kotlin на start.spring.io.

Null-безопасность

Одной из ключевых особенностей Kotlin является null безопасность. Он имеет дело со значениями NULL во время компиляции, а не откладывает проблему во время выполнения и обнаруживает исключение NullPointerException. Это помогает устранить распространенный источник ошибок, не оплачивая упаковщики, такие как Optional. Kotlin также позволяет использовать функциональные конструкции с обнуляемыми значениями.

Хотя Java не позволяет выражать null безопасность в своей системе типов, Spring Framework, Spring Data и Reactor обеспечивают null безопасность своего API посредством удобных для инструментов аннотаций. По умолчанию типы из API-интерфейсов Java, используемых в Kotlin, распознаются как типы платформ, для которых null проверки ослаблены. Поддержка Kotlin аннотаций JSR 305 в сочетании с обнуляемыми аннотациями обеспечивает null безопасность для соответствующего Spring API в Kotlin.

Проверки JSR 305 можно настроить, добавив флаг компилятора -Xjsr305 со следующими параметрами: -Xjsr305={strict|warn|ignore}. Поведение по умолчанию такое же, как и -Xjsr305=warn. Строгое значение должно учитывать null безопасность в типах Kotlin, выведенных из Spring API, но его следует использовать с учетом того, что объявление обнуляемости Spring API может развиваться даже между второстепенными релизами, и в будущем может быть добавлено больше проверок.

Обнуляемость аргументов общего типа, переменных varargs и элементов массива пока не поддерживается.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки