Spring: Boot

Spring: Boot


После подключения соответствующих библиотек, необходимо добавить класс с аннотацией авто-конфигурации @SpringBootConfiguration. Имеет ряд особенностей:

  • аннотация является расширяющей к @Configuration со всеми доступными ей свойствами;
  • Уже включает @EnableAutoConfiguration, который конфигурирует автоматические бины из различных библиотек;
  • уже включает @ComponentScan с настройкой поиска в рамках текущего (для аннотированного класса) пакета, а так же всех дочерних. Может быть переопределено параметром scanBasePackages.

Для запуска SpringContext следует выполнить SpringApplication.run(<? extends Class>) с классом, содержащим аннотацию @SpringBootConfiguration

1
2
3
4
5
6
@SpringBootConfiguration
public class MySpringApp {
public static void main(String[] args) {
SpringApplication.run(MySpringApp.class, args);
}
}

По умолчанию запустится 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.

 Comments
Comment plugin failed to load
Loading comment plugin