Spring: Boot
После подключения соответствующих библиотек, необходимо добавить класс с аннотацией авто-конфигурации @SpringBootConfiguration
. Имеет ряд особенностей:
- аннотация является расширяющей к
@Configuration
со всеми доступными ей свойствами; - Уже включает
@EnableAutoConfiguration
, который конфигурирует автоматические бины из различных библиотек; - уже включает
@ComponentScan
с настройкой поиска в рамках текущего (для аннотированного класса) пакета, а так же всех дочерних. Может быть переопределено параметромscanBasePackages
.
Для запуска SpringContext
следует выполнить SpringApplication.run(<? extends Class>)
с классом, содержащим аннотацию @SpringBootConfiguration
1 |
|
По умолчанию запустится Embedded Tomcat в качестве веб-сервера, но реализацию веб-сервера можно изменить.
Параметры SpringBoot
Попытка загрузить параметры будет выполняться в следующей последовательности:
- если приложение в development mode - поиск будет осуществляться ${USER_HOME}/.spring-boot-devtools.properties (для Linux, $USER_HOME = “~”)
- из
@TestPropertySources
(если указан); - из
@SpringBootTest
(если указан); - из коммандной строки;
- из переменной окружения SPRING_APPLICATION_JSON (параметры в виде JSON);
- параметров
ServletContext
; - из атрибутов JNDI, java:comp/env;
- из
System.getProperties()
, стандартных для Java; - из переменных окружения ОС;
- из
RandomValuePropertySource
; - из параметров специфичных для профиля - application-${profile}.yml, application-${profile}.properties. Де-факто, поиск осуществляется дважды - внутри запускаемого jar и вне;
- из параметров application.yml, applocation.properties. Де-факто, поиск осуществляется дважды - внутри запускаемого jar и вне;
- из
@PropertySource
внутри@Configuration
; - из параметров по ум., полученных после вызова метода
SpringApplication.setDefaultProperties()
.
Параметры с одинаковым именем приоритезируются в соответствии со списком - согласно очередности из списка выше.
Расположение application.properties можно переопределить, передав параметры запуска –spring.config.location.
Логгирование
SpringBoot по ум. Использует Logback. Используемые уровни по ум.: ERROR, WARN, INFO.
Логгирование осуществляется до инициализации ApplicationContext
, а значит им нельзя управлять через @PropertySources
.