Tutorial: Usar a configuração dinâmica em um aplicativo Java Spring
A Configuração do Aplicativo tem duas bibliotecas para o Spring.
spring-cloud-azure-appconfiguration-config
requer Spring Boot e depende dospring-cloud-context
.spring-cloud-azure-appconfiguration-config-web
requer o Spring Web juntamente com o Spring Boot, e também adiciona suporte para verificação automática da atualização da configuração.
Ambas as bibliotecas suportam acionamento manual para verificar se há valores de configuração atualizados.
Atualizar permite que você atualize seus valores de configuração sem ter que reiniciar seu aplicativo, embora faça com que todos os beans no @RefreshScope
sejam recriados. 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, intervalo de atualização, é definido como 30 segundos.
spring-cloud-azure-appconfiguration-config-web
A atualização automatizada do é acionada com base na atividade, especificamente no Spring Web.ServletRequestHandledEvent
Se um ServletRequestHandledEvent
não for acionado, a atualização automatizada do não acionará uma atualização, spring-cloud-azure-appconfiguration-config-web
mesmo que o tempo de expiração do cache tenha expirado.
Usar a atualização manual
Para usar a atualização manual, comece com um aplicativo Spring Boot que usa a Configuração do Aplicativo, como o aplicativo que você cria seguindo o início rápido do Spring Boot para Configuração do Aplicativo.
A Configuração do Aplicativo expõe AppConfigurationRefresh
o , que pode ser usado para verificar se o cache expirou. Se tiver expirado, uma atualização será acionada.
Para usar
AppConfigurationRefresh
o , 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(); } }
AppConfigurationRefresh
'srefreshConfigurations()
retorna aMono
que é true se uma atualização for acionada e false se não. False significa que o tempo de expiração do cache não expirou, não houve alteração ou outro thread está atualmente verificando se há uma atualização.Para ativar a atualização
bootstrap.properties
: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 até o recurso de Configuração do Aplicativo associado ao seu aplicativo. Selecione Configuration Explorer em Operations e crie um novo par chave-valor selecionando + Create>Key-value para adicionar os seguintes parâmetros:
Key valor sentinel 1 Deixe Rótulo e Tipo de Conteúdo vazios por enquanto.
Selecione Aplicar.
Crie a aplicação Spring Boot com o Maven e execute-a.
mvn clean package mvn spring-boot:run
Abra uma janela do navegador e vá para o URL:
http://localhost:8080
. Você verá a mensagem associada à sua chave.Você também pode usar a ondulação para testar sua aplicação, por exemplo:
curl -X GET http://localhost:8080/
Para testar a configuração dinâmica, abra o portal de Configuração de Aplicativo do Azure associado ao seu aplicativo. Selecione Configuration Explorer e atualize o valor da chave exibida, por exemplo:
Key valor /aplicativo/config.message Olá - Atualizado Atualize a chave sentinela criada anteriormente para um novo valor. Essa alteração aciona o aplicativo para atualizar todas as chaves de configuração assim que o intervalo de atualização é passado.
Key valor sentinel 2 Atualize a página do navegador duas vezes para ver a nova mensagem exibida. A primeira vez que aciona a atualização, a segunda carrega as alterações.
Nota
A biblioteca só verifica se há alterações no após o intervalo de atualização ter passado. Se o período não tiver passado, nenhuma alteração será exibida. Aguarde o período passar e, em seguida, acione a verificação de atualização.
Usar atualização automatizada
Para usar a atualização automatizada, comece com um aplicativo Spring Boot que use a Configuração do Aplicativo, como o aplicativo que você cria seguindo o início rápido do Spring Boot para Configuração do Aplicativo.
Em seguida, abra o arquivo pom.xml em um editor de texto e adicione um <dependency>
para spring-cloud-azure-appconfiguration-config-web
usar o código a seguir.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.18.0</version>
</dependency>
Para ativar a atualização
bootstrap.properties
: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 até o recurso de Configuração do Aplicativo associado ao seu aplicativo. Selecione Configuration Explorer em Operations e crie um novo par chave-valor selecionando + Create>Key-value para adicionar os seguintes parâmetros:
Key valor sentinel 1 Deixe Rótulo e Tipo de Conteúdo vazios por enquanto.
Selecione Aplicar.
Crie a aplicação Spring Boot com o Maven e execute-a.
mvn clean package mvn spring-boot:run
Abra uma janela do navegador e vá para o URL:
http://localhost:8080
. Agora você vê a mensagem associada à sua chave.Você também pode usar a ondulação para testar sua aplicação, por exemplo:
curl -X GET http://localhost:8080/
Para testar a configuração dinâmica, abra o portal de Configuração de Aplicativo do Azure associado ao seu aplicativo. Selecione Configuration Explorer e atualize o valor da chave exibida, por exemplo:
Key valor /aplicativo/config.message Olá - Atualizado Atualize a chave sentinela criada anteriormente para um novo valor. Essa alteração aciona o aplicativo para atualizar todas as chaves de configuração assim que o intervalo de atualização é passado.
Key valor sentinel 2 Atualize a página do navegador duas vezes para ver a nova mensagem exibida. A primeira vez que aciona a atualização, a segunda carrega as alterações, pois a primeira solicitação retorna usando o escopo original.
Nota
A biblioteca só verifica se há alterações após o intervalo de atualização ter passado. Se o intervalo de atualização não tiver passado, ele não verificará se há alterações. Aguarde o intervalo passar e, em seguida, acione a verificação de atualização.
Próximos passos
Neste tutorial, você habilitou seu aplicativo Spring Boot para atualizar dinamicamente as definições de configuração da Configuração do aplicativo. Para mais perguntas, consulte a documentação de referência, que contém 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 do Azure para simplificar o acesso à Configuração do Aplicativo, continue para o próximo tutorial.