Знания меняют судьбу, программирование делает меня счастливым, и я продолжу шагать в мире открытого исходного кода в 2020 году.
Ставьте лайк и смотрите снова, формируйте привычку
дай мне звезду,Нажмите, чтобы узнать о решении для посадки службы компонентного интерфейса на основе SpringBoot.
концепция
占位符Это гибкий метод настройки, который позволяет нам гибко использовать параметры конфигурации.@ValueКонфигурация аннотаций также является проявлением заполнителей, доступ к которым можно получить изEnvironmentполучить соответствующий配置值.
Рекомендуемое чтение
Метод конфигурации
существуетapplication.yml/propertiesможно использовать непосредственно в файле конфигурации占位符Чтобы сделать взаимную ссылку конфигурации, выполните следующие действия:
system:
name: ${spring.application.name}
spring:
application:
name: project-sample
В приведенной выше конфигурацииnameКонфигурация напрямую упоминаетсяspring.application.nameЗначение конфигурации , так что мы передаем@Value("${name}")или через@ConfigurationPropertiesПри использовании таким образом полученные значения всеproject-sample.
// @Value方式
@Value("${system.name}")
private String name;
// @ConfigurationProperties方式
@Configuration
@ConfigurationProperties(prefix = "system")
static class LoadConfig {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
СюдаЗначительно уменьшает ту же конфигурациюпоявляйся, впусти нас
配置文件Также можно добиться чего-то вроде常量Определение.
использовать по умолчанию
когда мы используем@Valueаннотация для ввода параметров конфигурации, если введенная конфигурацияNULL, при запуске проекта будет выброшено исключение, и проект не может быть запущен нормально, поэтому нам необходимо добавить значение по умолчанию следующим образом:
system:
name: ${spring.application.name:default}
#spring:
# application:
# name: project-sample
В приведенной выше конфигурации поместитеspring.application.nameзакомментировано, когда мы используем${spring.application.name}Заполнитель на самом деле не относится к допустимому значению через${xxx:defaultValue}Форма может быть настроена со значениями по умолчанию, когда конфигурация, на которую ссылается заполнитель,NULL, значение по умолчанию (Тип значения по умолчанию должен соответствовать конфигурации).
также через@Value("${system.name:default}")Этот способ настройки значения по умолчанию не рекомендуется.Когда значение по умолчанию изменяется, мы должны изменить его один за другим.
Конечно, рекомендуется использовать внедрение конфигурации.
@ConfigurationProperties, следовать точноOOPПо замыслу назначение выполняется при запуске приложения, даже если указанная конфигурацияNULLНет значения по умолчанию, и нет проблем с исключениями при запуске.
«Короткие» аргументы командной строки
Если вы не знакомы с аргументами командной строки, вы можете посетитьБазовая статья Springboot2.x: Гибкое использование внешней информации о конфигурацииУчиться.
При фактическом развертывании приложения большая часть конфигурации является динамической,命令行Тем не менее, параметры — хороший способSpringBootПредоставленные имена параметров конфигурации относительно длинные, и мы можем воспользоваться этим.占位符Метод конфигурации реализует настройку.
占位符ОтEnvironmentпрочитать соответствующее значение конфигурации в命令行参数будет добавлено в приложение при его запускеEnvironment, так и реализовано占位符Динамическая конфигурация, на самом деле, значение слова «короткий» заключается в том, что новое имя конфигурации, которое вы определяете, является относительно коротким.
Предполагая, что наш номер порта должен быть указан динамически, файл конфигурации можно настроить следующим образом:
server:
port: ${port:8080}
portэто то, что мы определяем как «короткий»占位符, если не указано при запуске приложения, используется значение по умолчанию8080.
java -jar project-sample.jar --port=9090
пройти через--port=9090Параметры командной строки, номер порта становится9090.
автор личноблогИспользуйте фреймворк с открытым исходным кодомApiBootПомочь вам стать архитектором сервисов интерфейса API