🎉Добро пожаловать в рубрику архитектурного дизайна~Весна Файл конфигурации загрузки (YAML & Свойства) сводка
Spring Boot — это платформа, используемая для упрощения разработки приложений Spring и предоставляющая мощные возможности управления конфигурацией. Spring Boot поддерживает несколько форматов файлов конфигурации, включая YAML и свойства. В этой статье мы суммируем использование, правила синтаксиса и лучшие практики файлов конфигурации Spring Boot.
Файл конфигурации Spring Boot используется для настройки различных свойств приложения, включая подключения к базе данных, номера портов, уровни журналирования, ключи для сторонних сервисов и т. д. Через файлы конфигурации мы можем гибко управлять настройкой приложения без изменения исходного кода.
YAML (YAML не является языком разметки) — это удобочитаемый формат сериализации данных, который представляет иерархии данных с отступом. В Spring Boot файлы YAML часто используются для настройки сложных свойств.
Вот простой пример YAML-файла конфигурации:
server:
port: 8080
servlet:
context-path: /myapp
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
В этом примере,Мы определили порт сервера, путь контекста сервлета и свойства подключения к базе данных. Обратите внимание, что отступы файлов YAML указывают на иерархическую структуру.,Итак, подсвойство(нравитьсяport
、context-path
)Должен иметь отступ в два пробела, чтобы указать, что они являются дочерними свойствами родительского свойства.。
Файл свойств имеет форму пар ключ-значение, которые хранятся в Spring. Он также широко используется в Boot. Ниже приведен приведенный выше файл. конфигурации Эквивалентные свойства версии YAML:
server.port=8080
server.servlet.context-path=/myapp
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
В файле свойств каждая строка содержит пару ключ-значение свойства. Ключи и значения разделяются знаком равенства (=).
Файлы конфигурации Spring Boot могут существовать в нескольких местах и загружаются в определенном порядке. Вот последовательность загрузки:
/config
папка。/config
Сумка。Это означает, что если существует несколько файлов конфигурации, файл конфигурации, загруженный позже, перезапишет конфигурацию, загруженную ранее, что позволит нам использовать разные файлы конфигурации в разных средах.
Spring Bootиспользоватьspring.profiles.active
атрибуты приходят Активируйте разные профили。Можно найти вapplication.properties
илиapplication.yaml
Установите это свойство в,Его также можно указать в командной строке или в переменной среды.
Например,существоватьapplication.properties
установить активацию в Конфигурация Файлdev
:
spring.profiles.active=dev
Затем,Создайте файл с именемapplication-dev.properties
илиapplication-dev.yaml
из Конфигурациядокумент,其中Сумка含与dev
环境相关из Конфигурация。
Spring Boot允许существовать Конфигурациядокумент中использовать占位符${...}
来引用其他属性из值。这对于существовать不同Конфигурациядокумент之间共享属性值非常有用。
Вот пример использования заполнителей:
server.port=8080
app.name=myapp-${server.port}
В этом примере,app.name
属性из值将被解析为myapp-8080
。
Помимо использования Spring В дополнение к атрибуту «Конфигурация» по умолчанию в Boot мы также можем определить наш собственный атрибут «Конфигурация». Определить свойства пользовательской конфигурации,Вы можете создать класс Java,并использовать@ConfigurationProperties
注解来指定属性из前缀。Затем,Зарегистрируйте этот класс как компонент в контейнере Spring.
Ниже приводится Свойства пользовательской конфигурациииз示例:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "myapp")
public class MyAppProperties {
private String greeting;
public String getGreeting() {
return greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
}
В приведенном выше примере,Мы определяем файл с именемmyapp.greeting
из属性,并существоватьMyAppProperties
类中声明了一个相应из字段。现существовать,Мы можем установить значение этого свойства в файле конфигурации:
myapp:
greeting: Hello, World!
Затем,Можно найти в应用程序中注入MyAppProperties
类来获取该属性из值。
В реальных проектах файл конфигурации может содержать некоторую конфиденциальную информацию, например пароли базы данных, ключи API и т. д. Чтобы защитить эту конфиденциальную информацию, Spring Boot предоставляет функции шифрования и расшифровки значений свойств.
可以использоватьjasypt-spring-boot-starter
Подождите, пока сторонняя библиотека внедрит шифрование атрибутов.。Ниже приводится示例:
Сначала добавьте зависимости:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
Затем используйте зашифрованные конфиденциальные свойства в файле конфигурации:
myapp:
password: ЭНК (зашифрованный текст)
В приведенном выше примере,ENC(...)
Указывает, что значение атрибута было зашифровано.。Spring Boot автоматически расшифрует значение атрибута и внедрит его в приложение.
Ниже приведены некоторые весенние BootЛучшие практики для файлов конфигурации:
application-dev.yaml
、application-prod.yaml
ждать)。Spring Файлы конфигурации загрузки являются ключом к управлению конфигурацией приложения. Рационально используя файлы конфигурации формата YAML и Properties, мы можем легко управлять различными свойствами приложения, тем самым повышая гибкость и удобство обслуживания приложения. В то же время весна Boot также предоставляет богатые функции для поддержки свойств. пользовательской конфигурация и шифрование атрибутов для удовлетворения потребностей различных проектов. Надеюсь, эта статья поможет вам понять и использовать Spring. Файлы конфигурации загрузки помогают!