Spring Boot поддерживает расслабленную привязку, которая относится к функции, обеспечивающей более гибкую привязку свойств конфигурации. Это позволяет разработчикам более простым способом указывать свойства конфигурации, допуская различные соглашения и форматы именования.
По умолчанию Spring Boot использует строгую привязку, которая требует, чтобы свойства конфигурации точно соответствовали указанным именам. Однако ослабленная привязка предоставляет несколько способов ослабить правила сопоставления свойств. Вот несколько примеров:
-
Успокаивающие имена свойств.
Spring Boot позволяет использовать различные соглашения об именах для свойств конфигурации. Например, вы можете указать свойства в kebab-case, Snake_case или CamelCase, и Spring Boot автоматически сопоставит их с соответствующими свойствами Java. Вот пример:# application.properties server.port=8080 logging.level.root=DEBUG// Application.java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "server") public class ServerProperties { private int port; // getter and setter }В этом примере свойство
server.portсопоставлено с полемportв классеServerProperties. -
Слабое связывание значений свойств.
Spring Boot также позволяет ослаблять привязку значений свойств. Он может преобразовывать значения в соответствующие типы на основе их строковых представлений. Например, вы можете использовать расслабленную привязку, чтобы указать целые числа как строки или наоборот. Вот пример:# application.properties server.port="8080"// Application.java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class ServerProperties { @Value("${server.port}") private int port; // getter and setter }В этом случае значение свойства
"8080"преобразуется в целое число и присваивается полюport. -
Ослабление свойств списка и массива.
Spring Boot также поддерживает расслабленную привязку для свойств списка и массива. Он позволяет указывать элементы списка, используя различные форматы, например значения, разделенные запятыми, или списки в стиле YAML. Вот пример:# application.properties myapp.names=John,Doe// Application.java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "myapp") public class MyAppProperties { private List<String> names; // getter and setter }В этом примере свойство
myapp.namesпривязано к списку строк.
Это всего лишь несколько примеров того, как Spring Boot поддерживает расслабленное связывание. Используя расслабленную привязку, вы можете обеспечить большую гибкость в настройке приложений Spring Boot.