Конфигурация Spring Boot приложений

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

Файлы конфигурации

Конфигурация Spring Boot по умолчанию располагается в файлах application.properties или application.yml, которые могут располагаться в следующих местах:

  • Каталог config текущего каталога
  • Текущий каталог
  • Пакет config в classpath
  • Корень classpath

Файл может быть либо java properties файлом, либо YAML файлом. В любом случае в нём могут находиться параметры Spring Boot и их значения. Полный список параметров описан в документации Spring Boot.

Самая простая вещь, которую можно для примера сделать, это изменить настройки логирования. Допустим, если вы хотите сменить уровень логирования, просто допишите в application.properties следующую строку:

logging.level.org.springframework=DEBUG

Собственные переменные конфигурации

Кроме характерных для Spring Boot переменных конфигурации, можно задавать и собственные. Они могут иметь любое имя, любое значение и Spring Boot не будет делать каких-либо предположений о них или пытаться их использовать. Чтобы получить доступ к содержимому ваших конфигурационных переменных, необходимо использовать аннотацию @Value в бине.

@Component
public class SomeService {
    @Value("${custom.config.variable}")
    private String myConfig;
}

Смена конфигурационного файла

Файл конфигурации по умолчанию это удобно, но что если у вас будет более одного Spring Boot приложения? В этом случае можно явно задать, где нужно искать файл конфигурации, добавив аннотацию @PropertySource  к классу приложения.

@PropertySource(value = "file:/etc/project/app.properties")
public class Application {
    public static void main(final String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Конфигурационные профили

Sprinb Boot поддерживает различные конфигурации в одном файле конфигурации. Например, чтобы не отклонятся от темы, вы можете использовать уровень логирования DEBUG при разработке, INFO при эксплуатации и FATAL при исполнении интеграционных тестов.Разные профили конфигурации могут быть заданы с использованием properties файлов и YAML файлов. Стоит отметить, что в YAML использовать профили удобнее:

logging:
    level:
        root: INFO


spring:
    profiles: development
logging:
    level:
        root: DEBUG


spring:
    profiles: testing
logging:
    level:
        root: FATAL

По умолчанию уровень логгирования будет INFO, при использовании профиля developmentDEBUG и при использовании профиля testing — уровень FATAL. Активировать профиль можно с помощью переменной окружения spring.profiles.active или параметра приложения —spring.profiles.active В обоих случаях можно перечислять несколько профилей через запятую. В случае, если активные профили переопределяют значение одной и той же переменной, её значение будет взять из последнего профиля.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *