Spring Boot - расширение Spring, используемым для создания приложений на основе микросервисов.
Автоконфигурация - автоматически настраивает приложение Spring на основе ранее добавленных зависимостей. Например, при выборе одного из стартеров.
Opinionated означает, что Spring Boot самостоятельно определяет набор настроенных bean-компонентов по умолчанию, которые вы можете переопределить при необходимости. Более того, этот фреймворк выбирает пакеты для установки с учетом необходимых вам зависимостей. Таким образом, разработчики Spring Boot сразу же начинают создавать свои приложения, уделяя больше внимания бизнес-логике, поскольку большая часть работы выполняется самим фреймворком.
Встроенный сервер - это часть приложения. Это означает, что вам не нужно предварительно устанавливать его в среде развертывания. Spring Boot по умолчанию предлагает встроенный сервер Tomcat, но вы можете изменить его на Jetty или Undertow.
Spring Boot позволяет разработчикам настраивать и запускать автономные приложения Spring производственного уровня без их развертывания на веб-сервере. Чтобы запустить обычное Java-приложение, его необходимо упаковать, выбрать, загрузить и настроить веб-сервер, а также организовать процесс развертывания. Java-приложение, созданное в Spring Boot, нуждается только в упаковке, после чего оно готово к запуску с использованием простых команд.
Совместимость по версиям. Указываем одну версию, остальное подберет Spring Boot.
Помещаем SQL файлы в 'resources'
Или указываем путь property. Пример для 'resources/jdbc'
## jdbc schema creation spring.sql.init.schema-locations=classpath:jdbc/schema.sql ## jdbc test data spring.sql.init.data-locations=classpath:jdbc/test-data.sql
Профили Spring позволяют кастомизировать приложение для работы в различном окружении.
В зависимости от активного профиля можно:
Если Spring-бин имеет аннотацию @Profile, он будет инстанциирован только если указанный в аннотации профиль соответствует какому-либо активному профилю.
Пример:
public interface SomeService { String NAME = "demo_SomeService"; String hello(String input); } @Service(SomeService.NAME) @Profile("dev") public class SomeDevServiceBean implements SomeService { @Override public String hello(String input) { return "Service stub: hello " + input; } } @Service(SomeService.NAME) @Profile("prod") public class SomeProdServiceBean implements SomeService { @Override public String hello(String input) { return "Real service: hello " + input; } }
Для того чтобы определить некоторые специфичные для профиля свойства приложения, создайте файл application-имя_профиля.properties в том же пакете, что и основной файл application.properties. Специфичный для профиля файл будет загружен сразу после базового файла, поэтому объявленные в нем свойства переопределят свойства, заданные в базовом файле.
Пример:
com/company/demo/application.properties com/company/demo/application-prod.properties
Пример
-Dspring.profiles.active=prod
Testcontainers - фреймворк интегрированный в Spring boot, который используется для запуска окружения интеграционных тестов в контейнерах Docker.