Spring Boot имеет огромное число настроек, которые имеют вполне приемлемые значения по умолчанию. А чтобы изменить эти значения, необходимо использовать файлы конфигурации.
Файлы конфигурации
Конфигурация Spring Boot по умолчанию располагается в файлах application.properties или application.yml, которые могут располагаться в следующих местах:
- Каталог config текущего каталога
- Текущий каталог
- Пакет config в classpath
- Корень classpath
Файл может быть либо java properties файлом, либо YAML файлом. В любом случае в нём могут находиться параметры Spring Boot и их значения. Полный список параметров описан в документации Spring Boot.
Самая простая вещь, которую можно для примера сделать, это изменить настройки логирования. Допустим, если вы хотите сменить уровень логирования, просто допишите в application.properties следующую строку:
1
|
logging.level.org.springframework=DEBUG
|
Собственные переменные конфигурации
Кроме характерных для Spring Boot переменных конфигурации, можно задавать и собственные. Они могут иметь любое имя, любое значение и Spring Boot не будет делать каких-либо предположений о них или пытаться их использовать. Чтобы получить доступ к содержимому ваших конфигурационных переменных, необходимо использовать аннотацию @Value в бине.
1
2
3
4
5
|
@Component
public class SomeService {
@Value("${custom.config.variable}")
private String myConfig;
}
|
Смена конфигурационного файла
Файл конфигурации по умолчанию это удобно, но что если у вас будет более одного Spring Boot приложения? В этом случае можно явно задать, где нужно искать файл конфигурации, добавив аннотацию @PropertySource к классу приложения.
1
2
3
4
5
6
|
@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 использовать профили удобнее:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
logging:
level:
root: INFO
spring:
profiles: development
logging:
level:
root: DEBUG
spring:
profiles: testing
logging:
level:
root: FATAL
|
По умолчанию уровень логгирования будет INFO, при использовании профиля development — DEBUG и при использовании профиля testing — уровень FATAL. Активировать профиль можно с помощью переменной окружения spring.profiles.active или параметра приложения —spring.profiles.active В обоих случаях можно перечислять несколько профилей через запятую. В случае, если активные профили переопределяют значение одной и той же переменной, её значение будет взять из последнего профиля.