Приветствую всех,

Я рад поделиться последней частью нашей серии вопросов для интервью Spring-Boot. В этой статье я представляю 10 дополнительных вопросов интервью Spring-Boot с соответствующими ответами.

(Немного контекста: я провел множество собеседований на должности разработчиков программного обеспечения в большинстве транснациональных корпораций. Кроме того, были случаи, когда я сталкивался с проблемами во время собеседований по программированию из-за отсутствия подготовки.)

Вы готовитесь к собеседованию в качестве разработчика Java?

Найдите мою книгу Guide To Clear Java Developer Interview здесь Gumroad(PDF Format) и Amazon (электронная книга Kindle).

Загрузите образец здесь: Guide To Clear Java Developer Interview[Free Sample Copy]

Для тех из вас, кто, возможно, пропустил предыдущие статьи, я рассказал







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

Что такое токен JWT?

JWT (JSON Web Token) — это компактный и автономный формат токена, используемый для безопасной передачи требований между сторонами в виде объекта JSON, часто используемый для целей аутентификации и авторизации.

Как реализовать аутентификацию JWT для приложения Spring-Boot?

Чтобы реализовать аутентификацию JWT в приложении Spring Boot, вы можете выполнить следующие шаги.

1. Включите зависимости Добавьте в свой проект необходимые зависимости, такие как `spring-boot-starter-security`, `jjwt-api` и `jjwt-impl` для поддержки JWT.

2. Настройка безопасности Создайте класс конфигурации безопасности, который расширяет `WebSecurityConfigurerAdapter` и переопределяет метод `configure(HttpSecurity http)`. Настройте механизм проверки подлинности, например, настройте фильтр проверки подлинности JWT.

3. Создание JWT Реализуйте метод для создания токена JWT, как правило, после успешной аутентификации. Используйте библиотеку, например JJWT, для создания токена с нужными утверждениями, сроком действия и ключом подписи.

4. Проверка и извлечение JWT Реализуйте механизм проверки JWT, создав фильтр или перехватчик, перехватывающий входящие запросы. Проверьте подпись токена JWT, срок действия и любые дополнительные необходимые утверждения. Извлеките необходимую информацию из токена.

5. Защитите конечные точки Защитите нужные конечные точки, добавив соответствующие конфигурации безопасности. Это можно сделать с помощью аннотаций @PreAuthorize или путем настройки правил безопасности на основе шаблонов конечных точек.

6. Необязательный токен обновления. При необходимости реализуйте механизм обновления токена JWT по истечении срока его действия. Это может включать создание нового токена на основе токена обновления или обновление токена через отдельную конечную точку.

Ленивая и жадная загрузка в спящем режиме?

  1. Ленивая загрузка Ленивая загрузка — это стратегия загрузки по умолчанию в Hibernate. При отложенной загрузке связанные сущности или коллекции не загружаются из базы данных до тех пор, пока к ним не будет явным образом получен доступ или запрос. Отложенная загрузка повышает производительность за счет загрузки данных только при необходимости и сокращения ненужных запросов к базе данных. Это может помочь избежать проблемы с запросом «N+1», но требует активного сеанса или транзакции во время доступа.
  2. Нетерпеливая загрузка Нетерпеливая загрузка — это альтернативная стратегия загрузки в Hibernate. При активной загрузке связанные объекты или коллекции извлекаются сразу же вместе с основным объектом. Ускоренная загрузка может уменьшить количество запросов, необходимых для доступа к связанным данным, но может привести к ненужному извлечению данных, если связанные данные не всегда используются. Его можно использовать, когда к связанным данным часто обращаются или когда вы знаете, что они потребуются.

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

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

Чтобы использовать Thymeleaf в приложении Spring Boot, вы можете выполнить следующие действия.

1. Включите зависимость Thymeleaf В файл `pom.xml` (Maven) или `build.gradle` (Gradle) добавьте зависимость Thymeleaf.

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

реализация «org.springframework.bootspring-boot-starter-thymeleaf»

2. Создайте шаблоны Thymeleaf Создайте шаблоны HTML с выражениями Thymeleaf. Эти шаблоны содержат заполнители, называемые атрибутами Thymeleaf, которые заменяются динамическими данными во время рендеринга. Выражения Thymeleaf заключены в атрибуты `th`.

3. Настройте Thymeleaf При необходимости настройте конфигурацию Thymeleaf. По умолчанию Spring Boot настраивает Thymeleaf автоматически, но вы можете переопределить конфигурацию по умолчанию, создав @Bean типа ITemplateResolver и настроив другие компоненты, связанные с Thymeleaf.

4. Используйте Thymeleaf в контроллерах. В контроллерах Spring MVC возвращайте имя шаблона Thymeleaf в виде строки. Spring Boot автоматически разрешает шаблон и объединяет его с данными модели, отображая окончательный вывод HTML.

5. Вставка данных в шаблоны В методах контроллера заполните объект модели данными, которые вы хотите отобразить в шаблоне Thymeleaf. Данные модели могут быть переданы в качестве аргументов метода или добавлены к объектам `Model` или `ModelAndView`.

6. Визуализация шаблонов Thymeleaf При вызове метода контроллера Spring Boot автоматически визуализирует шаблон Thymeleaf путем слияния данных модели с шаблоном. Результирующий вывод HTML отправляется клиенту.

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

Каковы шаги для подключения приложения Spring Boot к базе данных с помощью JDBC?

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

1. Включите драйвер базы данных. Добавьте зависимость драйвера базы данных в файл вашего проекта `pom.xml` (Maven) или `build.gradle` (Gradle). Например, если вы используете MySQL

Мавен

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

Грейдл:

реализация «mysqlmysql-connector-java»

2. Настройте соединение с базой данных. В файле `application.properties` или `application.yml` укажите необходимые свойства конфигурации для соединения с базой данных. Эти свойства обычно включают URL-адрес, имя пользователя, пароль и класс драйвера.

Например, для MySQL

характеристики

spring.datasource.url=jdbcmysql//localhost3306/mydatabase
spring.datasource.username=dbuser
spring.datasource.password=dbpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3. Доступ к базе данных: теперь в приложении Spring Boot вы можете использовать JDBC для доступа к базе данных. Вы можете создавать репозитории или использовать шаблоны JDBC для выполнения операций с базой данных, таких как запросы, вставка, обновление и удаление данных.

- При использовании шаблонов JDBC вы можете автоматически подключить класс JdbcTemplate к своим компонентам и использовать его методы для взаимодействия с базой данных.

- При использовании Spring Data JPA вы можете определить интерфейсы репозитория и позволить Spring Boot сгенерировать для вас необходимые реализации.

Вот и все! С помощью этих шагов ваше приложение Spring Boot подключается к базе данных с помощью JDBC. Теперь вы можете использовать JDBC или Spring Data JPA для выполнения операций с базой данных в соответствии с вашими требованиями.

Как включить поддержку HTTP/2 в Spring Boot?

Вы можете включить поддержку HTTP/2 в Spring Boot с помощью server.http2.enabled=true

Что такое Spring Boot CLI и как выполнить проект Spring Boot с помощью загрузочного CLI?

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

Чтобы выполнить проект Spring Boot с помощью интерфейса командной строки Spring Boot, вы можете выполнить следующие шаги.

1. Установите Spring Boot CLI Загрузите и установите Spring Boot CLI с официального веб-сайта Spring или через диспетчер пакетов. Убедитесь, что в вашей системе установлена ​​Java.

2. Создайте проект Spring Boot Используя интерфейс командной строки Spring Boot, перейдите в каталог, в котором вы хотите создать проект Spring Boot. Запустите следующую команду, чтобы создать новый проект

spring init — зависимости=‹зависимости, разделенные запятыми› мой проект

Замените `‹comma-separated-dependencies›` нужными зависимостями для вашего проекта, например `web` для веб-приложения.

3. Перейдите в каталог проекта. Перейдите в каталог проекта с помощью команды «cd».

компакт-диск мой проект

4. Сборка и запуск проекта. Выполните следующую команду для сборки и запуска проекта Spring Boot.

весенний забег.

Эта команда автоматически компилирует и запускает проект. Spring Boot CLI анализирует структуру проекта, определяет основной класс и запускает встроенный сервер.

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

Различия между JPA и Hibernate?

JPA (Java Persistence API) — это спецификация, определяющая набор стандартов для объектно-реляционного сопоставления в Java, а Hibernate — это реализация спецификации JPA, обеспечивающая дополнительные функции и функции.

Как создать пользовательскую конечную точку в Spring Boot Actuator?

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

1. Создайте пользовательский класс конечной точки. Реализуйте класс, расширяющий конечную точку или ее подчиненный интерфейс, например MvcEndpoint или HealthEndpoint. Переопределите необходимые методы, чтобы определить поведение и ответ настраиваемой конечной точки.

2. Аннотируйте класс конечной точки Аннотируйте пользовательский класс конечной точки с помощью `@Endpoint`, чтобы пометить его как конечную точку Actuator. При желании вы можете использовать дополнительные аннотации, такие как `@RequestMapping` или `@WebEndpoint`, чтобы определить путь URL-адреса конечной точки и метод HTTP.

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

4. Зарегистрируйте конечную точку. Зарегистрируйте пользовательский компонент конечной точки в контексте Spring, обычно используя аннотацию @Bean в классе конфигурации или реализуя WebMvcConfigurer и переопределяя метод addEndpointHandlers.

5. Настройка доступа к конечной точке По умолчанию пользовательские конечные точки не предоставляются через HTTP. Чтобы включить HTTP-доступ, настройте доступность конечной точки, указав ее конфигурацию конечной точки управления. Это можно сделать через `application.properties` или программно через свойства конфигурации Spring Boot.

6. Протестируйте конечную точку. Запустите приложение Spring Boot и получите доступ к настраиваемой конечной точке, используя настроенный URL-адрес. Вы должны получить ответ на основе реализации пользовательской конечной точки.

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

Различия между аннотациями @SpringBootApplication и @EnableAutoConfiguration?

  • @SpringBootApplication Это удобная аннотация, которая объединяет три часто используемые аннотации в приложении Spring Boot: @Configuration, @EnableAutoConfiguration и @ Компонентное сканирование. Он включает автоматическую настройку и сканирование компонентов, а также помечает класс как класс конфигурации.
  • @EnableAutoConfiguration Включает функцию автоматической настройки Spring Boot, которая автоматически настраивает приложение на основе зависимостей пути к классам, параметров свойств и других условий. Он использует файл spring.factories для поиска и применения соответствующих классов автоматической настройки.

Каков наилучший способ предоставить пользовательскую конфигурацию приложения с помощью Spring Boot?

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

Спасибо за прочтение

  • 👏 Пожалуйста, хлопайте в историю и подписывайтесь на меня 👉(можно поставить 50 хлопков)
  • 📰 Подробнее читайте в моем Medium(более 30 историй об интервью с Java-разработчиком)
  • Найдите мою книгу Guide To Clear Java Developer Interview здесь Gumroad(PDF Format) и Amazon (электронная книга Kindle).
  • 🔔 Следуйте за мной: LinkedIn | Твиттер | Подстек | Фейсбук