С момента своего создания Spring Boot произвел фурор в отрасли.
Сегодня все больше и больше компаний выбирают платформу Spring Boot в своих проектах. Таким образом, Spring Boot стал одним из неизбежных вопросов, которые необходимо задать во время собеседования.
Удачного чтения!

Вопрос 1. В чем разница между Spring и Spring Boot?

Spring Framework предоставляет несколько функций, упрощающих разработку веб-приложений. Эти функции включают внедрение зависимостей, привязку данных, аспектно-ориентированное программирование, доступ к данным и многое другое.

По мере того как сообщество Spring росло, Spring постепенно становился все более сложным и уже не таким легким, как предполагалось. Увеличивающееся количество конфигураций для разработки приложений - головная боль для разработчиков. На этом этапе вам пригодится Spring Boot - он упрощает конфигурацию с помощью идеи «Соглашение больше, чем конфигурация», абстрагирует некоторые функции и конфигурацию, предоставляемые Spring, в «Starter» из коробки и ссылается на него. по запросу, по требованию. Значительно упрощенная разработка.

Вопрос 2. Что является стартером в Spring boot?

Управление зависимостями имеет решающее значение для проекта. Когда проект достаточно сложен, управление зависимостями может стать кошмаром, потому что задействовано слишком много компонентов.

Вот где вам пригодится стартер Spring Boot. Каждый новичок может предоставить нам комплексное обслуживание необходимой технологии Spring. А также согласованно передавать и управлять другими необходимыми зависимостями.

В настоящее время существует более 50 официальных стартеров. Чаще всего используются:

  • spring-boot-starter: Core starter, включая поддержку автоконфигурации, ведение журнала и YAML.
  • spring-boot-starter-aop: новичок в аспектно-ориентированном программировании с использованием Spring AOP и AspectJ.
  • spring-boot-starter-data-jpa: стартер с использованием Spring Data JPA и Hibernate
  • spring-boot-starter-jdbc: стартер для использования JDBC с пулом соединений HikariCP
  • spring-boot-starter-security: для начинающих, использующих Spring Security
  • spring-boot-starter-test: стартер для тестирования приложений Spring Boot.
  • spring-boot-starter-web: стартер для создания Интернета с помощью Spring MVC, включая приложения RESTful.

Остальные участники могут перейти на spring.io.

Вопрос 3. Какие внешние конфигурации поддерживает загрузка Spring?

Spring Boot поддерживает внешнюю конфигурацию, что позволяет запускать одно и то же приложение в различных средах. Мы можем использовать файлы свойств, файлы YAML, переменные среды, системные свойства и параметры параметров командной строки, чтобы указать свойства конфигурации.

Затем мы можем получить доступ к этим свойствам с помощью аннотации @Value, аннотации @ConfigurationProperties связанного объекта или внедрения абстрактного класса Environment.

Вот наиболее распространенные источники внешней конфигурации:

  • Атрибуты командной строки: параметры командной строки - это параметры программы, начинающиеся с двойного дефиса, например -server.port = 8080. Spring Boot преобразует все параметры в атрибуты и добавляет их в набор атрибутов среды.
  • Свойства приложения. Свойства приложения - это свойства, загруженные из файла application.properties или его YAML-копии. По умолчанию Spring Boot ищет этот файл в текущем каталоге, в корневом каталоге пути к классам или в его подкаталоге config.
  • Свойства, относящиеся к профилю: свойства, относящиеся к профилю, загружаются из файла application- {profile} .properties или его YAML-копии. Заполнитель {profile} относится к активному профилю. Эти файлы находятся в том же месте, что и файл неспецифических свойств, и имеют приоритет над файлом неспецифических свойств.

Q4: Как запустить некоторую логику при запуске Spring Boot?

Вы можете реализовать интерфейс ApplicationRunner, предоставляемый Spring Boot, или интерфейс CommandLineRunner. Два интерфейса реализованы одинаково; они предоставляют только метод запуска.

В чем разница между тестированием Spring и Spring Boot?

При запуске интеграционных тестов для приложений Spring у нас должен быть ApplicationContext.

Чтобы упростить тестирование, Spring Boot предоставляет специальную аннотацию @SpringBootTest для тестирования. Эта аннотация создает ApplicationContext из класса конфигурации, указанного в его атрибуте classes.

Если атрибут classes не установлен, Spring Boot будет искать основной класс конфигурации. Поиск начинается с пакета, содержащего тест, до тех пор, пока не будет найден класс с пометкой @SpringBootApplication или @SpringBootConfiguration.

Обратите внимание, что если мы используем JUnit 4, мы должны украсить тестовый класс с помощью @RunWith (SpringRunner.class).

Q5. Какая польза от Spring Boot Actuator?

Spring Boot Actuator может помочь вам контролировать и управлять приложениями Spring Boot, такими как проверки работоспособности, аудит, статистика и отслеживание HTTP.

Actuator также может интегрироваться с внешними системами мониторинга приложений, такими как Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic и т. Д. Эти системы предоставляют отличные функции панели инструментов, значков, анализа и сигнализации, чтобы вы могли легко контролировать свои приложения и управлять ими. через единый интерфейс.

Привод использует микрометр для интеграции упомянутой выше внешней системы мониторинга приложений. Это дает возможность интегрировать любую систему мониторинга приложений с минимальной конфигурацией.

Интегрировать Spring Boot Actuator в проект очень просто. Все, что нам нужно сделать, это включить пускатель пружины-пускателя-пускателя в файл pom.xml.

Spring Boot Actuator может предоставлять информацию об операции с помощью конечных точек HTTP или JMX. Однако большинство приложений используют протокол HTTP, где идентификатор конечной точки и префикс / исполнителя образуют путь URL.

Вот некоторые из наиболее распространенных встроенных конечных точек, предоставляемых Actuator:

  • auditevents: информация о мероприятии общественного аудита.
  • env: раскрыть свойства среды
  • работоспособность: отображение информации о работоспособности приложения.
  • httptrace: отображение информации трассировки HTTP.
  • info: отображать любую информацию о приложении.
  • metric: отображение информации о показателях.
  • сопоставление: отображение списка всех путей @RequestMapping.
  • запланированные задачи: показывать запланированные задачи в приложении.
  • threaddump: выполнить дамп потока.
  • beans: все загруженные Spring beans.

Привод должен использоваться в производственной среде для защиты этих конечных точек от запросов несанкционированного доступа.

Надеюсь, это вам поможет!

Спасибо за уделенное время. Надеюсь, у вас есть для вас интересный материал, и вы получили удовольствие от чтения.

Будем на связи! Подпишитесь на мою еженедельную рассылку

❤ Если вам понравился этот пост, возможно, вам также понравятся: