Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma nova versão da biblioteca de Configuração de Aplicativos para Spring Boot está disponível. A versão apresenta novos recursos como, por exemplo, as propriedades globais do Azure para Spring Cloud, mas também algumas alterações interruptivas. Essas alterações não são retroativamente compatíveis com as instalações de configurações que usavam a versão anterior da biblioteca.
Este artigo fornece uma referência sobre as alterações e ações necessárias para migrar para a nova versão da biblioteca.
As IDs de grupo e de artefato foram alteradas
Todas as IDs de grupo e de artefato nas bibliotecas do Azure para Spring Boot foram atualizadas para corresponder a um novo formato. Os novos nomes de pacote são:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-feature-management</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-feature-management-web</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
A versão 4.7.0 é a primeira versão 4.x da biblioteca. Corresponde à versão das outras bibliotecas do Azure para Spring Cloud.
A partir da versão 4.7.0, as bibliotecas de gerenciamento de recursos e Configurações de Aplicativos passaram a fazer parte da lista de materiais (BOM) das spring-cloud-azure-dependencies
. O arquivo BOM garante que você não precise mais especificar a versão das bibliotecas no seu projeto. O BOM gerencia automaticamente a versão das bibliotecas.
Caminhos de pacote renomeados
Os caminhos do pacote para as bibliotecas de spring-cloud-azure-feature-management
e spring-cloud-azure-feature-management-web
foram renomeados de com.azure.spring.cloud.feature.manager
para com.azure.spring.cloud.feature.management
e com.azure.spring.cloud.feature.management.web
.
Classes renomeadas
As seguintes classes foram alteradas:
ConfigurationClientBuilderSetup
foi renomeado paraConfigurationClientCustomizer
. Seu método desetup
foi renomeado paracustomize
.SecretClientBuilderSetup
foi renomeado paraSecretClientCustomizer
. Seu método desetup
foi renomeado paracustomize
.AppConfigurationCredentialProvider
eKeyVaultCredentialProvider
foram removidos. Alternativamente, você pode usar as propriedades de configuração comuns do Azure para Spring Cloud ou modificar as credenciais usandoConfigurationClientCustomizer
ouSecretClientCustomizer
.
Carregamento do sinalizador de recurso
Os sinalizadores de recursos agora são compatíveis com o carregamento por meio de vários filtros de chave/rótulo:
spring.cloud.azure.appconfiguration.stores[0].feature-flags.enable
spring.cloud.azure.appconfiguration.stores[0].feature-flags.selects[0].key-filter
spring.cloud.azure.appconfiguration.stores[0].feature-flags.selects[0].label-filter
spring.cloud.azure.appconfiguration.stores[0].monitoring.feature-flag-refresh-interval
A propriedade spring.cloud.azure.appconfiguration.stores[0].feature-flags.label
foi removida. Alternativamente, você pode usar spring.cloud.azure.appconfiguration.stores[0].feature-flags.selects[0].label-filter
para especificar um filtro de rótulo.
Usar personalizadores de cliente
ConfigurationClientCustomizer
e SecretClientCustomizer
são usados para personalizar as instâncias ConfigurationClient
e SecretClient
. Você pode usá-los para modificar os clientes antes que eles sejam usados para se conectarem à Configuração de Aplicativos. Isso permite o uso de qualquer tipo de credencial compatível com a biblioteca de Identidades do Azure. Você também pode modificar os clientes para definir um HttpClient
ou HttpPipeline
personalizado.
import com.azure.core.credential.TokenCredential;
import com.azure.data.appconfiguration.ConfigurationClientBuilder;
import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.identity.ChainedTokenCredential;
import com.azure.identity.ChainedTokenCredentialBuilder;
import com.azure.identity.EnvironmentCredentialBuilder;
import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer;
public class ConfigurationClientCustomizerImpl implements ConfigurationClientCustomizer {
@Override
public void customize(ConfigurationClientBuilder builder, String endpoint) {
AzureCliCredential cliCredential = new AzureCliCredentialBuilder().build();
String managedIdentityClientId = System.getenv("MANAGED_IDENTITY_CLIENT_ID");
ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder()
.clientId(managedIdentityClientId).build();
ChainedTokenCredential credential = new ChainedTokenCredentialBuilder().addLast(cliCredential)
.addLast(managedIdentityCredential).build();
builder.credential(credential);
}
}
Possíveis conflitos com as propriedades globais do Azure para Spring Cloud
As propriedades de configuração comuns do Azure para Spring Cloud permitem que você personalize suas conexões com os serviços do Azure. A nova biblioteca de Configuração de Aplicativos seleciona qualquer configuração global ou de Configuração de Aplicativos que estiver configurada com as propriedades de configuração comuns do Azure para Spring Cloud. Sua conexão com a Configuração do Aplicativo é alterada se as configurações forem configuradas para outra biblioteca do Azure para Spring Cloud.
Você pode substituir esse comportamento usando ConfigurationClientCustomizer
/SecretClientCustomizer
para modificar os clientes.
Aviso
As propriedades globais do Azure para Spring Cloud podem fornecer mais de um método de conexão à medida que coletam automaticamente credenciais como variáveis de ambiente e as utilizam para se conectar aos serviços do Azure. Esse comportamento poderá causar problemas se você estiver usando um método de conexão diferente como, por exemplo, a Identidade gerenciada, e as propriedades globais o estiverem ignorando.