Tutorial: Usar a configuração dinâmica em um aplicativo Java Spring
A Configuração de Aplicativos tem duas bibliotecas para Spring.
spring-cloud-azure-appconfiguration-config
exige o Spring Boot e assume uma dependência despring-cloud-context
.spring-cloud-azure-appconfiguration-config-web
requer o Spring Web junto com o Spring Boot e também adiciona suporte para verificação automática da atualização de configuração.
As duas bibliotecas dão suporte ao disparo manual para verificar se há valores de configuração atualizados.
A atualização permite que você atualize seus valores de configuração sem precisar reiniciar seu aplicativo, embora isso faça com que todas as metas no @RefreshScope
sejam recriadas. Ele verifica se há alterações nos gatilhos configurados, incluindo metadados. Por padrão, o tempo mínimo entre as verificações de alterações, o intervalo de atualização, é definido como 30 segundos.
A atualização automatizada de spring-cloud-azure-appconfiguration-config-web
é disparada com base na atividade, especificamente o ServletRequestHandledEvent
do Spring Web. Se um ServletRequestHandledEvent
não for disparado, a atualização automatizada de spring-cloud-azure-appconfiguration-config-web
não dispara uma atualização mesmo que o tempo de expiração do cache tenha transcorrido.
Usar a atualização manual
Para usar a atualização manual, comece com um aplicativo Spring Boot que usa a Configuração de Aplicativos, como o aplicativo criado com o Início rápido do Spring Boot para a Configuração de Aplicativos.
A Configuração de Aplicativos expõe AppConfigurationRefresh
, que pode ser usada para verificar se o cache expirou. Se tiver expirado, uma atualização será disparada.
Para usar
AppConfigurationRefresh
, atualize o HelloController.import com.azure.spring.cloud.config.AppConfigurationRefresh; @RestController public class HelloController { private final MessageProperties properties; @Autowired(required = false) private AppConfigurationRefresh refresh; public HelloController(MessageProperties properties) { this.properties = properties; } @GetMapping public String getMessage() throws InterruptedException, ExecutionException { if (refresh != null) { refresh.refreshConfigurations(); } return "Message: " + properties.getMessage(); } }
refreshConfigurations()
deAppConfigurationRefresh
retornará umMono
que será true se uma atualização tiver sido disparada e false se não tiver. False significa que o tempo de expiração do cache não transcorreu, que não houve alteração ou que outro thread está verificando uma atualização no momento.Atualize
bootstrap.properties
para habilitar atualização:spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
Abra o Portal do Azure e navegue para o recurso de Configuração de Aplicativos associado ao seu aplicativo. Selecione Explorador de configurações em Operações e crie um par chave-valor selecionando + Criar>chave-valor para adicionar os seguintes parâmetros:
Chave Valor sentinel 1 Deixe Rótulo e Tipo de Conteúdo vazios por enquanto.
Escolha Aplicar.
Compile o aplicativo Spring Boot com Maven e execute-o.
mvn clean package mvn spring-boot:run
Abra uma nova janela do navegador e acesse a URL:
http://localhost:8080
. Você verá a mensagem associada à sua chave.Você também pode usar a ondulação para testar o aplicativo, por exemplo:
curl -X GET http://localhost:8080/
Para testar a configuração dinâmica, abra o portal de Configuração de Aplicativos do Azure associado ao aplicativo. Selecione Gerenciador de Configurações e atualize o valor da chave exibida, por exemplo:
Chave Valor /application/config.message Hello - Updated Atualize a chave do Sentinel criada anteriormente para um novo valor. Esta alteração dispara o aplicativo para atualizar todas as chaves de configuração após o término do intervalo de atualização.
Chave Valor sentinel 2 Atualize a página do navegador duas vezes para ver a nova mensagem exibida. A primeira vez dispara a atualização, a segunda carrega as alterações.
Observação
A biblioteca só verifica se há alterações depois que o intervalo de atualização tiver transcorrido. Se o período não tiver passado, nenhuma alteração será exibida. Aguarde a passagem do período e dispare a verificação de atualização.
Usar a atualização automatizada
Para usar a atualização automatizada, comece com um aplicativo Spring Boot que usa a Configuração de Aplicativos, como o aplicativo criado com o Início rápido do Spring Boot para a Configuração de Aplicativos.
Em seguida, abra o arquivo pom.xml em um editor de texto e adicione uma <dependency>
a spring-cloud-azure-appconfiguration-config-web
usando o seguinte código.
Spring Boot
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.8.0</version>
</dependency>
Atualizar
bootstrap.properties
para habilitar métricasspring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
Abra o Portal do Azure e navegue para o recurso de Configuração de Aplicativos associado ao seu aplicativo. Selecione Explorador de configurações em Operações e crie um par chave-valor selecionando + Criar>chave-valor para adicionar os seguintes parâmetros:
Chave Valor sentinel 1 Deixe Rótulo e Tipo de Conteúdo vazios por enquanto.
Escolha Aplicar.
Compile o aplicativo Spring Boot com Maven e execute-o.
mvn clean package mvn spring-boot:run
Abra uma nova janela do navegador e acesse a URL:
http://localhost:8080
. Agora, você verá a mensagem associada à sua chave.Você também pode usar a ondulação para testar o aplicativo, por exemplo:
curl -X GET http://localhost:8080/
Para testar a configuração dinâmica, abra o portal de Configuração de Aplicativos do Azure associado ao aplicativo. Selecione Gerenciador de Configurações e atualize o valor da chave exibida, por exemplo:
Chave Valor /application/config.message Hello - Updated Atualize a chave do Sentinel criada anteriormente para um novo valor. Esta alteração dispara o aplicativo para atualizar todas as chaves de configuração após o término do intervalo de atualização.
Chave Valor sentinel 2 Atualize a página do navegador duas vezes para ver a nova mensagem exibida. A primeira vez dispara a atualização, a segunda carrega as alterações, pois a primeira solicitação retorna usando o escopo original.
Observação
A biblioteca só verifica se há alterações depois que o intervalo de atualização tiver transcorrido. Se o intervalo de atualização não tiver passado, ele não verificará se há alterações. Aguarde a passagem do intervalo e dispare a verificação de atualização.
Próximas etapas
Neste tutorial, você habilitou seu aplicativo Spring Boot para atualizar dinamicamente as definições de configuração na Configuração de Aplicativos. Para obter mais perguntas, confira a documentação de referência, ela tem todos os detalhes sobre como funciona a biblioteca de Configuração de Aplicativos do Azure do Spring Cloud. Para saber como usar uma identidade gerenciada pelo Azure para simplificar o acesso à Configuração de Aplicativos, passe para o próximo tutorial.