22 часто задаваемых вопроса и ответы на собеседовании по Spring Boot

Опубликовано: 2022-11-10

Вы разработчик Java Spring Boot и с нетерпением ждете предстоящего интервью, но не знаете, какие вопросы ожидать? Мы здесь, чтобы помочь!

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

Интервьюеры используют стратегические вопросы Java Spring Boot, чтобы проверить уровни навыков интервьюируемых, соответствующие их назначенной роли. Поэтому нужно подготовиться с соответствующими вопросами и знать, как на них отвечать.

Прежде чем перейти непосредственно к вопросам интервью и соответствующим ответам, давайте рассмотрим базовый обзор того, что такое Spring Boot и насколько он полезен для разработчиков Java.

Что такое Java Spring Boot?

Этот фреймворк Java был создан ключевой командой в 2014 году. Spring Boot, фреймворк с открытым исходным кодом, эффективно разрабатывает независимые приложения производственного уровня, которые также могут работать на виртуальной машине Java (JVM).

Разработчики Java предпочитают его для разработки веб-приложений и микросервисов из-за быстрого и простого процесса установки и безопасного времени настройки.

Простая установка и настройка приложений на основе Spring с помощью Spring Boot возможны благодаря трем основным возможностям, которые включают:

  • Автоконфигурация — автоматическая настройка приложения Spring.
  • Spring Boot предлагает взвешенный подход к используемым настройкам по умолчанию и пакетам для установки для необходимых зависимостей. Этот самоуверенный подход помогает в быстрой настройке проектов.
  • Sprsetupoot позволяет вам независимо запускать ваше приложение без необходимости использования веб-сервера.

Чем Spring Boot полезен для Java-разработчиков?

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

Spring Boot также легко интегрируется с экосистемой Spring, которая включает Spring JDBC, Spring Data, Spring Security и Spring ORM.

Разработчики Java также могут подключать Spring Boot к различным базам данных, таким как Oracle, MySQL, PostgreSQL и MongoDB, среди прочих.

Конечно, гибкие конфигурации с конфигурациями XML, Java Beans и транзакциями базы данных входят в число других полезных функций.

Поэтому теперь, когда у вас есть базовый обзор Spring Boot, давайте рассмотрим некоторые из часто задаваемых вопросов и ответов на собеседовании по Spring Boot, которые помогут вам подготовиться к собеседованию.

Spring Boot Interview Вопросы и ответы

Вопросы на собеседовании по Spring Boot

Каковы некоторые особенности Spring Boot?

Некоторые из этих популярных функций включают в себя:

  • Интерфейс командной строки Spring Boot предоставляет Groovy для написания приложения Spring Boot; в долгосрочной перспективе шаблонного кода избегают.
  • Spring Boot обеспечивает ведение журнала и функцию безопасности, которая легко защищает ваше приложение от потенциальных угроз безопасности.
  • Он обеспечивает автоматическую настройку соответствующих компонентов для вашего проекта, что позволяет избежать риска ненужных файлов WAR.
  • Стартовый Initializer устанавливает для вас внутреннюю структуру проекта по умолчанию. Таким образом, вам не нужно вручную настраивать структуру проекта.
  • Функция привода Spring Boot предоставляет доступ к информации и метрикам во время работы приложения.
  • Конечно, одна из ключевых функций Spring Boot, Starter Dependency, помогает агрегировать часто используемые зависимости конкретной функции.

Что такое Spring Boot Starters?

Стартеры Spring Boot — это дескрипторы зависимостей, которые включают набор поставщиков управления зависимостями, которые включают зависимости приложения. Они предоставляют фреймворку автоматическое разрешение зависимостей. Стартеры способствуют легкому и быстрому развитию.

Что такое актуатор в Spring Boot и каковы его преимущества?

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

Во время отладки, например, вы можете использовать привод для анализа журналов, предоставляя доступ к таким функциям, как использование ЦП и идентификация компонентов.

Кроме того, привод не только обеспечивает легкий доступ к готовым к работе конечным точкам REST, которые отслеживают и управляют информацией, но также извлекает данные из Интернета.

Что такое лист тимьяна и как его использовать?

Thymeleaf — это серверный шаблон Java, который создает естественный макет шаблона как для веб-приложений Spring, так и для веб-приложений HTML5 Java.

Spring Boot выполнит автоматическую настройку тимелеафа, используя зависимость spring-boot-starter-thymeleaf в файле pom.xml для обслуживания динамического веб-контента.

Чтобы Spring Boot мог читать и отображать шаблоны тимелеафа или HTML-файлы, поместите шаблоны в src/main/resources/templates .

Затем Thymeleaf анализирует файл index.html и использует фактические значения, которые вы передаете из класса контроллера, вместо динамических значений, доступных в файле индекса.

После этого сообщение отображается в веб-браузере, как только запускается приложение Spring Boot.

 org.springframework.boot spring-boot-starter-thymeleaf

Опишите процесс создания проекта Spring Boot с помощью Spring Initializer.

Spring Initializr, веб-инструмент Spring, позволяет создать проект Spring Boot за несколько шагов, предоставив сведения о проекте.

  1. Перейдите к Spring inializr и заполните поля ввода.
  2. Нажатие кнопки « Создать » запустит загрузку проекта.
  3. Извлеките загруженный проект из zip-файла и откройте его в своей среде IDE. В среде IDE перейдите в меню «Файл» -> «Создать» - > «Проект из существующих источников » -> «Spring-boot-app», затем выберите файл pom.xml. Нажмите на приглашение импортировать изменения, чтобы проект синхронизировался. После этого не забудьте зайти в файл application.properties и изменить номер server.port на server.port=7000 .
  4. Теперь запустите приложение из src->main->java->com.gfg.Spring.boot.app.

Что такое JPA в Spring Boot?

Это спецификация на Java, которая использует сопоставление объектных отношений (ORM) для управления реляционными данными и обеспечивает доступ к данным между объектом Java или классом Java и реляционной базой данных приложения.

JPA использует язык постоянных запросов Java (JPQL), объектно-ориентированный язык запросов, который также не зависит от платформы.

JPA позволяет обрабатывать запросы и транзакции объектов в базе данных с помощью предоставляемого API Entity Manager.

Что такое автоконфигурация в Spring Boot?

Автоматическая настройка направлена ​​на автоматизацию настройки приложения Spring Boot с помощью JAR-зависимостей, которые вы добавляете к приложениям.

В зависимости от доступных зависимостей в Classpath приложения, автоматическая настройка объявит встроенные объекты модуля Spring, включая JPA и безопасность spring, среди прочего.

Что такое весенние аннотации?

Аннотации Spring относятся к метаданным, предлагающим информацию о фрагменте программы, и они добавляют дополнительные данные к этой программе. Компоненты кода, включая классы и методы, часто связаны с аннотациями.

Аннотации не влияют напрямую на работу программы или последующее действие скомпилированного кода.
Их синтаксис начинается с символа « @ ».

Spring Boot предоставляет шесть основных типов аннотаций, включая:

  • Аннотации ядра Spring
  • Аннотации данных Spring
  • Аннотации Spring Bean
  • Весенние веб-аннотации
  • Аннотации весеннего планирования
  • Аннотации Spring Boot

Что означает Spring Data REST?

Spring Data REST предоставляет ресурсы в RESTful, которые находятся вокруг Spring Data Resources, используя минимальный код.

В следующем примере используется метод POST для запроса содержимого с использованием http://localhost/example в качестве URL-адреса и Content-Type: application/json в качестве заголовка.

Содержание запроса:

 { "name": "Jimmy", "Gender": "Male", "Age": 23 }

Содержание ответа:

 { "name": "Jimmy", "Gender": "Male", "Age": 23 "_links": { "self": { "href": "http://localhost:8080/example/1" }, "person": { "href": "http://localhost:8080/example/1" } } }

Зачем нужны Spring Boot DevTools?

Это обширный набор предопределенных инструментов, свойства которых применяются к соответствующим средам разработки, чтобы упростить разработку и сэкономить время разработки.

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

Что такое весенние данные?

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

Как указать автоконфигурации отступать, когда существует bean-компонент?

Здесь вы будете использовать аннотацию @ConditionalOnMissingBean, которая включает атрибут имени и значения следующим образом.

  • атрибут value хранит тип компонента для проверки
  • атрибут name, который называет bean-компонент для проверки

Как получить данные из базы данных в Spring Boot?

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

Шаг 1: Используйте команду create DATABASE person для создания базы данных в MySQL.

Шаг 2: В базе данных создайте таблицу:

 CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));

Шаг 3: Теперь создайте приложение Spring Boot, затем добавьте к нему JDBC, MySQL и необходимые веб-зависимости.

Шаг 4: Настройте базу данных из файла application.properties, как показано ниже.

 spring.datasource.url=jdbc:mysql://localhost:3306/personDetails spring.datasource.username=example123 spring.datasource.password=example123 spring.jpa.hibernate.ddl-auto=create-drop

Шаг 5: Далее давайте обработаем запросы в классе контроллера:

 package com.person; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.RestController; @RestController public class JdbcController { @Autowired JdbcTemplate jdbc; @RequestMapping("/save") public String index(){ jdbc.execute("insert into person (name)values(Trial)"); return "Name entered Successfully"; } }

Наконец, запустите свое приложение, когда вы проверяете запись в базе данных, чтобы увидеть данные, к которым осуществляется доступ.

Зачем нам нужны профили Spring?

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

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

Кроме того, это затруднило бы синхронизацию и означало бы дополнительную необходимость написания нескольких компонентов, подобных фабрике, которые могли бы использовать определенные необходимые вещи в зависимости от конкретных параметров, специфичных для среды.

Можем ли мы изменить порт встроенного сервера Tomcat при загрузке Spring?

Да мы можем.

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

Например, вы можете изменить номер server.port со значения по умолчанию 8080 на server.port= 8081 .

Как настроить Log4j для ведения журнала?

С помощью этих нескольких простых шагов мы можем настроить Log4j для ведения журнала:

  1. Сначала создайте проект Java, затем щелкните проект правой кнопкой мыши. Перейдите к MyEclipse->File->New->Java Project , чтобы назвать проект, и нажмите «Готово».
  2. Затем щелкните правой кнопкой мыши имя своего проекта Java и выберите Путь сборки -> Настроить путь сборки. Этот шаг добавит файл log4j.
  3. Перейдите к библиотеке, нажмите кнопку « Добавить внешние JARS » и выберите файл log4j в появившемся раскрывающемся меню. Затем нажмите ОК.
  4. Создайте новый java-файл, который вы назовете файлом log4j.properties , затем нажмите «Готово» и добавьте этот файл в путь к классам.
  5. Нажмите «Дополнительно» в пути к классам, затем выберите параметр « Добавить папки» и не забудьте нажать «ОК».
  6. Теперь вы можете найти файл log4j.properties, нажать OK и запустить проект.
  7. Проверьте консоль для вывода ниже.
 [main] DEBUG Example – Hello this is a debug message [main] INFO Example – Hello this is an info message

Что такое контейнер IoC?

Контейнер IoC (Inversion of Control) — это основной контейнер Spring, который автоматически реализует внедрение зависимостей. Он создает экземпляр приложения класса и отвечает за настройку объектов и сборку необходимых зависимостей.

Он также управляет жизненным циклом объекта от его создания до его уничтожения.

IoC выполняет эти задачи, используя конфигурацию метаданных в коде Java, XML и аннотациях Java.

Контейнер называется инверсией управления, поскольку он управляет объектами Java и жизненными циклами этих объектов. В остальном это задача разработчика.

Объясните, как создать приложение Spring Boot с помощью Maven.

Этот процесс включает в себя ряд шагов.

Шаг 1: Выберите тип проекта.

Шаг 2: Назовите свой проект, чтобы настроить его, затем нажмите кнопку «Готово», чтобы создать проект.

Шаг 3: Теперь мы настроим файл pom.xml из проекта Maven, чтобы создать из него проект Spring Boot.

файл pom.xml:

 <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javatpoint</groupId> <artifactId>spring-boot-example</artifactId> <version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name> </project>

Конфигурация включает добавление родителя в проект Maven. Это объявит проект Maven как дочерний проект для родительского проекта.

 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent>

Шаг 4: Затем добавьте веб-зависимость spring-boot-starter-web в файл pom.xml.

 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

Шаг 5 : Добавьте версию Java проекта.

 <properties> <java.version>1.8</java.version> </properties>

Шаг 6: Обратите внимание, что каждый раз, когда вы добавляете новые зависимости, вам необходимо обновлять проект Maven.

Шаг 7. Сделайте проект Maven работоспособным, создав класс Java в пакете src/main/java .

Шаг 8: Затем вызовите метод статического запуска класса приложения Spring.

Шаг 9: Наконец, запустите класс как приложение Java.

Каковы преимущества Spring Boot перед Spring?

  • Возможность начальной загрузки Spring Boot для компиляции исходного языка с использованием инициализатора загрузки, метода, называемого начальной загрузкой, позволяет экономить место на устройствах пользователей, а также сокращает время загрузки приложения.
  • В отличие от Spring, Spring Boot позволяет управлять зависимостями после добавления зависимостей spring-boot без зависимости от родительской POM (родительской объектной модели) или XML-файла.
  • Spring Boot также позволяет разработчикам использовать аннотации или конфигурации XML без необходимости использования конфигураций XML.
  • Разработчики предпочитают Spring Boot из-за меньшего количества шаблонного кода, необходимого для настройки приложения. Это связано с тем, что Spring Boot поставляется с базой данных в памяти и встроенным сервером Tomcat, что уменьшает объем стандартного кода. Spring, с другой стороны, имеет больше стандартного кода.
  • Spring Boot не обязательно требует файлов WAR (ресурс веб-приложения) и может полагаться только на JAR (ресурс Java), который имеет небольшую и более простую структуру и, следовательно, более полезен для пользователей и разработчиков.
  • Spring Boot также автоматически встраивает такие серверы, как Tomcat и Jetty; поэтому разработчику не нужно вручную настраивать сервер, как вы должны делать в Spring.

Как сделать разбиение на страницы в Spring Boot?

Процесс разбиения на страницы делит данные на разделы для экономии ресурсов. Это влечет за собой два поля, размер страницы и номер страницы.

Процесс включает в себя несколько шагов, в том числе:

Шаг 1: Начальная настройка
Сущность Consiseupn мы назовем Person в качестве доменного класса.

 @Entity public class Person { @Id private long id; private String name; }

Шаг 2: Создание репозитория
Затем используйте PersonRepository , extends PagingAndSortingRepository , чтобы получить findAll(Pageable pageable ) и findAll(Sort sort) для разбиения по страницам и сортировки соответственно.

 public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }

Шаг 3: Шаг разбиения на страницы
Первым шагом здесь является создание объекта PageRequest ; путем передачи номера страницы и размера страницы по запросу, который реализует интерфейс Pageable .

 Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);

Затем передайте этот объект PageRequest методу репозитория в качестве параметра.

 Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements); List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)

По умолчанию findAll(Pageable pageable) возвращает объект Page<T> .

Объясните, как зарегистрировать пользовательскую автоконфигурацию

В файле META-INF/spring.factories ключа @EnableAutoConfiguration укажите полное имя. На этом шаге регистрируется класс автоконфигурации.

 org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration

Для сборки проекта с помощью Maven вам потребуется поместить файл в каталог resources/META-INF .

Что такое загрузка в Spring Boot?

Начальная загрузка — это процесс выполнения логики в приложении Spring Boot при запуске.
Boot Initializr компилирует исходный язык в Spring Boot. Этот процесс экономит место на устройстве, а также сокращает время загрузки приложения.

Заключительные слова

Что ж, в этой статье были рассмотрены некоторые вопросы, которые интервьюеры, вероятно, зададут вам во время интервью, и ответы, которые помогут вам уверенно пройти его. Мы надеемся, что вы получите работу своей мечты!

Вы также можете узнать несколько полезных советов из вопросов, заданных во время собеседования по Java.

Удачи!