1. Что такое Spring Boot?
Spring Boot – это подпроект организации с открытым исходным кодом Spring. Это универсальное решение для компонентов Spring. Оно в основном упрощает использование Spring, упрощает сложную настройку и предоставляет различные стартовые возможности, чтобы разработчики могли быстро приступить к работе.
2. Каковы преимущества Spring Boot?
Сокращение времени и усилий на разработку, тестирование.
Использование JavaConfig помогает избежать использования XML.
Избегайте большого количества импортов Maven и различных конфликтов версий.
Дайте рекомендации по разработке методов.
Начните разработку быстро, предоставив значения по умолчанию.
Отдельный веб-сервер не требуется. Это означает, что вам больше не нужно запускать Tomcat, Glassfish или что-то еще.
Требуется меньше настроек, так как нет файла web.xml. Просто добавьте класс с аннотацией @Configuration, затем добавьте метод с аннотацией @Bean, и Spring автоматически загрузит объект и будет управлять им, как и раньше. Вы даже можете добавить @Autowired к методу bean-компонента, чтобы Spring автоматически подключал необходимые ему зависимости. Конфигурация на основе среды Используя эти свойства, вы можете передать используемую среду приложению: -Dspring.profiles.active={enviornment}. После загрузки основного файла свойств приложения Spring загрузит последующие файлы свойств приложения в (application{environment}.properties).
3. Каковы основные файлы конфигурации Spring Boot? В чем их отличие?
Основные файлы конфигурации Spring Boot — это файлы конфигурации приложения и начальной загрузки.
Файл конфигурации приложения прост для понимания и в основном используется для автоматической настройки проектов Spring Boot.
Файл конфигурации начальной загрузки имеет следующие сценарии применения.
При использовании центра конфигурации Spring Cloud Config вам необходимо добавить свойства конфигурации, подключенные к центру конфигурации, в файл конфигурации начальной загрузки, чтобы загрузить информацию о конфигурации внешнего центра конфигурации; Некоторые фиксированные свойства, которые нельзя переопределить; некоторые сценарии шифрования/дешифрования.
4. Каковы форматы файлов конфигурации Spring Boot? В чем разница между ними?
.properties и .yml, главное отличие между ними — разный формат записи.
1 , properties
app.user.name = javastack
2, yml
app:
user:
name: javastack
5. Какова основная аннотация Spring Boot? Из каких аннотаций он в основном состоит?
Аннотация к классу запуска — @SpringBootApplication, которая также является основной аннотацией Spring Boot. Основная комбинация содержит следующие 3 аннотации:
@SpringBootConfiguration: объединяет аннотацию @Configuration для реализации функции файла конфигурации.
@EnableAutoConfiguration: включите функцию автоматической настройки или отключите параметр автоматической настройки, например отключение функции автоматической настройки источника данных: @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}).
@ComponentScan: сканирование компонентов Spring.
6. Как можно включить функции Spring Boot?
1) Наследовать родительский проект spring-boot-starter-parent
2) Импорт зависимостей проекта spring-boot-dependencies
7. Нужен ли для запуска Spring Boot отдельный контейнер?
Нет необходимости, встроенные контейнеры, такие как Tomcat/Jetty.
8. Какие есть способы запуска Spring Boot?
1) Упакуйте команду или поместите ее в контейнер для запуска
2) Запуск с плагином Maven/Gradle
3) Непосредственно выполнить основной метод для запуска
9. Каков принцип автоматической настройки Spring Boot?
Аннотации @EnableAutoConfiguration, @Configuration, @ConditionalOnClass являются ядром автоматической настройки, во-первых, это должен быть конфигурационный файл, а во-вторых, он автоматически настраивается в зависимости от того, есть ли этот класс в пути к классам.
10. Каковы новые возможности Spring Boot 2.X? В чем разница с 1.Х?
Изменения конфигурации
Обновление версии JDK
Обновление сторонней библиотеки классов
Поддержка программирования Reactive Spring
Поддержка HTTP/2
Настроить привязку свойства
Больше улучшений и улучшений…
11. Как реализовать разбиение по страницам и сортировку с помощью Spring Boot?
Реализовать разбиение на страницы с помощью Spring Boot очень просто. Передача страницы org.springframework.data.domain.Pageable в метод репозитория возможна с использованием Spring Data-JPA.
12. Как реализовать безопасность приложения Spring Boot?
Для реализации безопасности Spring Boot мы используем зависимость spring-boot-starter-security и должны добавить конфигурацию безопасности. Это требует очень мало кода. Класс конфигурации должен будет расширить WebSecurityConfigurerAdapter и переопределить его методы.
13. Как интегрировать Spring Boot и ActiveMQ?
Для интеграции Spring Boot и ActiveMQ мы используем зависимость spring-boot-starter-activemq. Он требует минимальной настройки и не требует шаблонного кода.
14. Что такое YAML?
YAML — это человекочитаемый язык сериализации данных. Обычно используется для конфигурационных файлов. По сравнению с файлами свойств файлы YAML более структурированы и менее запутаны, если мы хотим добавить сложные свойства в файлы конфигурации. Видно, что YAML имеет иерархические данные конфигурации.
15. Что такое монитор в Spring Boot?
Привод Spring Boot — одна из важных функций в структуре Spring Boot. Мониторы загрузки Spring помогают получить доступ к текущему состоянию запущенных приложений в рабочей среде. Существует несколько показателей, которые необходимо проверять и отслеживать в производственной среде. Даже некоторые внешние приложения могут использовать эти службы для отправки предупреждающих сообщений соответствующему персоналу. Модуль монитора предоставляет набор конечных точек REST, доступных непосредственно как URL-адреса HTTP для проверки состояния.
16, что такое Swagger? Вы реализовали это с помощью Spring Boot?
Swagger широко используется для визуализации API-интерфейсов, используя пользовательский интерфейс Swagger для предоставления онлайн-песочницы для разработчиков интерфейса. Swagger — это инструмент, спецификация и полная реализация платформы для создания визуальных представлений веб-сервисов RESTful. Он позволяет обновлять документы с той же скоростью, что и сервер. При правильном определении с помощью Swagger потребители могут понимать и взаимодействовать с удаленными службами, используя минимальное количество логики реализации. Таким образом, Swagger избавляет от догадок при вызове служб.
17. Как использовать Spring Boot для реализации обработки исключений?
Spring предоставляет очень полезный способ обработки исключений с помощью ControllerAdvice. Мы обрабатываем все исключения, генерируемые классом контроллера, реализуя класс ControlerAdvice.
18. В чем разница между RequestMapping и GetMapping?
RequestMapping имеет атрибуты класса и может выполнять GET, POST, PUT или другие методы запроса в аннотациях.
GetMapping — это частный случай метода запроса GET. Это просто расширение ResquestMapping для ясности.
19. Совместим ли Spring Boot со старыми проектами Spring и каким образом?
Для совместимости используйте аннотацию @ImportResource для импорта старого файла конфигурации проекта Spring.
20. Какие существуют способы защиты приложений Spring Boot?
Используйте HTTPS в продакшене Проверьте свои зависимости с помощью Snyk Обновите до последней версии Включить CSRF-защиту Предотвращение XSS-атак с помощью Content Security Policy