Загрузочный весенний ботинок 3 от Джоша Лонга @ Spring I/O 2023

YOUTUBE · 25.11.2025 03:04

Ключевые темы и таймкоды

Введение

0:01
  • Джош Лонг приветствует зрителей и рассказывает о своем опыте работы в весенней команде и использовании Kotlin.
  • Он также упоминает о своем канале на YouTube и аккаунте в Твиттере.

Создание нового приложения

2:42
  • Джош создает новое приложение с использованием версии 3.1 Spring Boot.
  • Он выбирает Java 17 для использования и добавляет зависимости, такие как встроенная поддержка изображений GraalVM, веб-поддержка Spring Boot, Postgres, поддержка тестовых контейнеров и JDBC.

Демонстрация работы приложения

6:03
  • Джош демонстрирует работу приложения, используя поддержку тестовых контейнеров и данные Spring.
  • Он создает репозиторий, клиентский HTTP-контроллер и конечную точку HTTP для работы с базой данных Postgres.
  • Он также обсуждает важность использования новых версий Java и избегания использования Java 8.

Введение в Spring Boot 3.1

7:35
  • В видео рассказывается о новых функциях и возможностях Spring Boot 3.1, включая поддержку тестовых контейнеров и инструментов разработки.
  • Демонстрируется, как использовать тестовый контейнер для получения учетных данных и как быстро перемещаться при разработке с помощью инструментов разработки.

Обработка ошибок и использование Rfc 7807

12:56
  • Вводится обработка ошибок и использование Rfc 7807 для представления ошибок клиентам.
  • Демонстрируется, как использовать Rfc 7807 для предоставления локализованных сообщений об ошибках.

Переход на Java EE с открытым исходным кодом

15:35
  • Обсуждается история перехода на Java EE с открытым исходным кодом и как это повлияло на сообщество разработчиков.
  • Отмечается, что благодаря Eclipse Foundation удалось выпустить Java EE 7, 8 и 9, сохраняя обратную совместимость.

Обновление Spring Boot

17:32
  • В Spring Boot 3 были интегрированы новые типы Java EE и удалены старые типы.
  • Теперь приложение можно наблюдать, обрабатывать ошибки и тестировать.

Создание метрик и трассировки

19:02
  • В Spring Boot 3 метрики и трассировка были перенесены в Micrometer.
  • Теперь можно использовать различные системы наблюдения, такие как App Optics, Azure Monitor и Prometheus.

Создание образа Docker

22:58
  • В Spring Boot 3 можно использовать пакеты для сборки и создания образа Docker из артефакта приложения.
  • Важно уделить время оптимизации и масштабируемости приложения.

Сравнение языков программирования

24:49
  • Java является одним из самых эффективных и масштабируемых языков программирования.
  • Она опережает другие языки, такие как C#, Go и Python, по эффективности и масштабируемости.

Компилятор "точно в срок"

26:20
  • Компилятор "точно в срок" позволяет компилировать код на лету, что повышает производительность и масштабируемость Java.
  • GraalVM - проект, который заменяет OpenJDK и включает встроенный механизм компиляции изображений.

Музыка в лифте

30:32
  • Автор просит добавить возможность воспроизведения музыки в лифте во время компиляции, чтобы отвлечься от работы.
  • Oracle и Red Hat поддерживают эту идею, и автор получает положительные отзывы.

Запуск приложения

34:32
  • Автор запускает приложение с использованием docker compose и docker desktop.
  • Приложение развертывается и подключается к базе данных, но требует больше памяти, чем ожидалось.

Создание клиента для службы

35:51
  • Создание клиента для службы с использованием Spring и GraphQL.
  • Использование декларативных интерфейсов для упрощения работы с HTTP-клиентами.

Использование GraphQL для создания конечной точки

41:15
  • Использование Spring GraphQL для создания конечной точки с использованием GraphQL.
  • Создание контроллера для обработки запросов и возврата данных в формате JSON.

Тестирование конечной точки

44:20
  • Использование консоли для просмотра данных, возвращаемых конечной точкой.
  • Обсуждение возможности использования французского произношения для слова "JSON".

GraphQL и Spring Boot

45:07
  • Видео обсуждает использование GraphQL в Spring Boot для создания эффективных и пригодных для производства приложений.
  • В GraphQL есть только один способ обработки запросов, что упрощает разработку и обслуживание.

Создание распознавателей и использование пакетной обработки

46:05
  • Создаются распознаватели для обработки запросов и получения данных профиля для каждого клиента.
  • В GraphQL используется пакетная обработка для получения всех профилей для всех клиентов.

Оптимизация производительности и использование нативной компиляции

48:02
  • Оптимизация производительности достигается за счет использования декларативного клиента и пакетной обработки.
  • В Spring Boot 3.1 добавлена поддержка нативной компиляции, что позволяет ускорить выполнение задач.