带有 Spring Boot 2.5.x 的 Azure AppConfiguration
Azure AppConfiguration with Spring Boot 2.5.x
问题
如何将 Azure AppConfiguration
与 SpringBoot 2.5.x
或更高版本集成?
信息
我正在尝试将 Azure AppConfiguration
资源用于 Spring Boot 2.5.4
项目。不幸的是,据我所知,我无法让它从 AppConfiguration 读取设置,甚至无法连接到它。
项目是新创建的 Spring Initializr 我只添加了
- Spring 启动启动器 Web
- Spring 引导启动程序安全性
- Spring 启动启动器 WebSocket
之后我尝试关注 Microsoft Quickstart documentation 但没有成功。该文档提到它使用 Spring 2.4.x
所以我假设一些更改破坏了它。
我还尝试通过查看一些 Azure Spring Boot Code Samples.
来确定问题
到目前为止所有示例都使用 bootstrap.properties
文件,我在搜索过程中了解到该文件目前已被弃用。将设置移动到 application.yml
或启用 use-legacy-processing: true
也不起作用。有什么想法吗?
pom.xml
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-cloud-appconfiguration-config</artifactId>
<version>2.0.0</version>
</dependency>
...
application.yml
spring:
config:
use-legacy-processing: true
profiles:
active: "develop"
application:
name: "MySampleService"
cloud:
azure:
appconfiguration:
stores:
- connection-string: "SomeAzureAppConfigurationResourceConnectionString"
label: ${spring.profiles.active}
#mysampleservice:
# message: "this is a message from file"
AppConfiguration 资源
我不完全确定设置名称的格式。我尝试基于 this documentation.
构建格式
配置 类 应该没问题,因为在 mysampleservice
中注释会导致使用消息蜂鸣值。
如有任何提示,我们将不胜感激!
更多信息以详细说明已接受的答案
答案中链接的文档指的是两个不同的包。在 maven 存储库的开头链接的是 spring-cloud-azure-appconfiguration-config
,而在后面使用的是 azure-spring-cloud-appconfiguration-config
。第二个使用 bootstrap.properties
文件。
工作 pom.xml
和 bootstrap.properties
:
...
<dependencies>
<!-- Dependency to load configuration from azure app configuration resource. Note that additional settings are required in bootstrap.properties
Documentation of settings: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/appconfiguration/azure-spring-cloud-starter-appconfiguration-config
-->
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
<version>2.1.0</version>
</dependency>
...
# Use this to enable or disable the cloud config, disabling it results in application.yaml beeing used.
spring.cloud.azure.appconfiguration.enabled=true
# Connection string to azure app configuration resource
spring.cloud.azure.appconfiguration.stores[0].connection-string= Endpoint=https://myofficeconfiguration.azconfig.io;Id=zUcT-l9-s0:PFYfW7WM0/Pz7WZOnH3v;Secret=JTB9myJqGekDAJ5m8Z1vjmkJZrPd88JbOEE3EqoqJYs=
# Configured filters for settings in the previous defined app configuration resource
spring.cloud.azure.appconfiguration.stores[0].selects[0].key-filter = /mysampleservice/
spring.cloud.azure.appconfiguration.stores[0].selects[0].label-filter = Sample
spring.cloud.azure.appconfiguration.stores[0].selects[1].key-filter = /notificationservice/
spring.cloud.azure.appconfiguration.stores[0].selects[1].label-filter = Sample2
bootstrap.yml/bootstrap.properties 仍然可以使用,它们不再是基础 Spring 包的一部分。
此外,您想将此文档用于 2.0.0 和更新版本 https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/appconfiguration/azure-spring-cloud-starter-appconfiguration-config。
问题
如何将 Azure AppConfiguration
与 SpringBoot 2.5.x
或更高版本集成?
信息
我正在尝试将 Azure AppConfiguration
资源用于 Spring Boot 2.5.4
项目。不幸的是,据我所知,我无法让它从 AppConfiguration 读取设置,甚至无法连接到它。
项目是新创建的 Spring Initializr 我只添加了
- Spring 启动启动器 Web
- Spring 引导启动程序安全性
- Spring 启动启动器 WebSocket
之后我尝试关注 Microsoft Quickstart documentation 但没有成功。该文档提到它使用 Spring 2.4.x
所以我假设一些更改破坏了它。
我还尝试通过查看一些 Azure Spring Boot Code Samples.
来确定问题到目前为止所有示例都使用 bootstrap.properties
文件,我在搜索过程中了解到该文件目前已被弃用。将设置移动到 application.yml
或启用 use-legacy-processing: true
也不起作用。有什么想法吗?
pom.xml
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-cloud-appconfiguration-config</artifactId>
<version>2.0.0</version>
</dependency>
...
application.yml
spring:
config:
use-legacy-processing: true
profiles:
active: "develop"
application:
name: "MySampleService"
cloud:
azure:
appconfiguration:
stores:
- connection-string: "SomeAzureAppConfigurationResourceConnectionString"
label: ${spring.profiles.active}
#mysampleservice:
# message: "this is a message from file"
AppConfiguration 资源
配置 类 应该没问题,因为在 mysampleservice
中注释会导致使用消息蜂鸣值。
如有任何提示,我们将不胜感激!
更多信息以详细说明已接受的答案
答案中链接的文档指的是两个不同的包。在 maven 存储库的开头链接的是 spring-cloud-azure-appconfiguration-config
,而在后面使用的是 azure-spring-cloud-appconfiguration-config
。第二个使用 bootstrap.properties
文件。
工作 pom.xml
和 bootstrap.properties
:
...
<dependencies>
<!-- Dependency to load configuration from azure app configuration resource. Note that additional settings are required in bootstrap.properties
Documentation of settings: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/appconfiguration/azure-spring-cloud-starter-appconfiguration-config
-->
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
<version>2.1.0</version>
</dependency>
...
# Use this to enable or disable the cloud config, disabling it results in application.yaml beeing used.
spring.cloud.azure.appconfiguration.enabled=true
# Connection string to azure app configuration resource
spring.cloud.azure.appconfiguration.stores[0].connection-string= Endpoint=https://myofficeconfiguration.azconfig.io;Id=zUcT-l9-s0:PFYfW7WM0/Pz7WZOnH3v;Secret=JTB9myJqGekDAJ5m8Z1vjmkJZrPd88JbOEE3EqoqJYs=
# Configured filters for settings in the previous defined app configuration resource
spring.cloud.azure.appconfiguration.stores[0].selects[0].key-filter = /mysampleservice/
spring.cloud.azure.appconfiguration.stores[0].selects[0].label-filter = Sample
spring.cloud.azure.appconfiguration.stores[0].selects[1].key-filter = /notificationservice/
spring.cloud.azure.appconfiguration.stores[0].selects[1].label-filter = Sample2
bootstrap.yml/bootstrap.properties 仍然可以使用,它们不再是基础 Spring 包的一部分。
此外,您想将此文档用于 2.0.0 和更新版本 https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/appconfiguration/azure-spring-cloud-starter-appconfiguration-config。