🚀 Вопросы интервью по Spring Boot

Вопросы 41-50 для разработчиков

Вопрос Spring Boot 41
Что такое Thymeleaf?

Ответ: Thymeleaf — это современный серверный шаблонизатор Java, используемый для создания динамических веб-страниц в Spring и Spring Boot приложениях. Он обрабатывает HTML-шаблоны на сервере и генерирует динамический контент перед отправкой его в браузер.

Характеристики:
  • Легко интегрируется со Spring MVC и Spring Boot
  • Поддерживает HTML5, CSS и JavaScript
  • Использует атрибуты, такие как th:text, th:if и th:each
Вопрос Spring Boot 42
Для чего используются Spring Boot DevTools?

Ответ: Spring Boot DevTools — это инструмент разработки, который повышает продуктивность разработчика, предоставляя автоматический перезапуск, поддержку LiveReload и другие возможности для этапа разработки.

Характеристики:
  • Поддержка LiveReload для обновления браузера
  • Более быстрый запуск приложения во время разработки
  • Улучшенный опыт разработки
Вопрос Spring Boot 43
Какую ошибку вы видите если H2 не присутствует в class path?

Ответ: Если зависимость H2 отсутствует, но приложение сконфигурировано для использования H2, Spring Boot не может загрузить JDBC-драйвер H2.

Характеристики:
  • JDBC-драйвер не может быть загружен
  • Добавьте зависимость H2, чтобы решить проблему
Типичная ошибка:

java.lang.ClassNotFoundException: org.h2.Driver
                
Вопрос Spring Boot 44
Объясните, как развернуть Spring Boot приложение на другом сервере

Ответ: Spring Boot приложение может быть развёрнуто либо как исполняемый JAR со встроенным сервером, либо как WAR-файл на внешнем сервере приложений, таком как Tomcat.

Шаги:
  • Собрать приложение с помощью Maven или Gradle
  • Сгенерировать JAR- или WAR-файл
  • Скопировать артефакт на целевой сервер
  • При необходимости настроить свойства приложения
  • Запустить приложение или развернуть его на сервере приложений
Вопрос Spring Boot 45
Как Spring Boot поддерживает микросервисы?

Ответ: Spring Boot упрощает разработку микросервисов, предоставляя автоконфигурацию, встроенные серверы и лёгкое создание REST API. Он также легко интегрируется со Spring Cloud для построения готовых для продакшена микросервисов.

Характеристики:
  • Лёгкое создание REST API с помощью @RestController
  • Starter dependencies упрощают управление зависимостями
  • Интегрируется со Spring Cloud для обнаружения сервисов, конфигурации и API-шлюзов
Вопрос Spring Boot 46
Что такое Service Discovery в микросервисах?

Ответ: Service Discovery — это механизм, который позволяет микросервисам регистрировать себя и автоматически обнаруживать другие сервисы без жёсткого прописывания их сетевых адресов.

Характеристики:
  • Другие сервисы обращаются к серверу обнаружения, чтобы найти их
  • Поддерживает динамическое масштабирование и балансировку нагрузки
  • Обычно реализуется с помощью Netflix Eureka в Spring Cloud
Вопрос Spring Boot 47
Какие преимущества у микросервисов?

Ответ: Микросервисы дают несколько преимуществ по сравнению с монолитными приложениями, позволяя разделить приложение на небольшие управляемые сервисы, работающие независимо друг от друга.

Преимущества:
  • Независимое развёртывание: Каждый сервис можно развернуть, не затрагивая остальные
  • Масштабируемость: Отдельные сервисы можно масштабировать в зависимости от нагрузки
  • Изоляция сбоев: Сбой в одном сервисе не останавливает всё приложение
  • Гибкость технологий: Разные сервисы могут использовать разные языки программирования или базы данных
  • Более быстрая разработка: Несколько команд могут одновременно работать над разными сервисами
Вопрос Spring Boot 48
Что такое Spring Cloud и почему это используется с Spring Boot?

Ответ: Spring Cloud — это фреймворк, построенный поверх Spring Boot, который предоставляет инструменты для разработки распределённых микросервисов. Пока Spring Boot создаёт отдельные сервисы, Spring Cloud управляет взаимодействием и инфраструктурой между ними. У него есть различные возможности, такие как:

Возможности:
  • Service Discovery (Eureka)
  • API Gateway
  • Централизованная конфигурация
  • Балансировка нагрузки
  • Circuit Breaker
Вопрос Spring Boot 49
Какие преимущества у микросервисов по сравнению с монолитной архитектурой?

Ответ: Микросервисы дают большую гибкость, масштабируемость и удобство сопровождения, разделяя приложение на небольшие независимые сервисы.

Преимущества:
  • Независимая разработка и развёртывание
  • Более быстрые циклы релизов
  • Лучшая масштабируемость
  • Улучшенная изоляция сбоев
  • Более простое сопровождение и тестирование
  • Поддерживает разные технологии и базы данных
Вопрос Spring Boot 50
Что такое REST API в микросервисах?

Ответ: REST API (Representational State Transfer API) — это самый распространённый способ взаимодействия микросервисов по HTTP. Он использует стандартные методы HTTP для выполнения операций над ресурсами.

Основные методы HTTP:
  • GET: Получить данные
  • POST: Создать новые данные
  • PUT: Обновить существующие данные
  • DELETE: Удалить данные
  • PATCH: Частично обновить данные