Spring Boot - cliente de configuração em nuvem
Alguns aplicativos podem precisar de propriedades de configuração que podem precisar de uma mudança e os desenvolvedores podem precisar desativá-los ou reiniciar o aplicativo para fazer isso. No entanto, isso pode levar a um tempo de inatividade na produção e à necessidade de reiniciar o aplicativo. O Spring Cloud Configuration Server permite que os desenvolvedores carreguem as novas propriedades de configuração sem reiniciar o aplicativo e sem qualquer tempo de inatividade.
Trabalhando com Spring Cloud Configuration Server
Primeiro, baixe o projeto Spring Boot em https://start.spring.io/e escolha a dependência do cliente Spring Cloud Config. Agora, adicione a dependência Spring Cloud Starter Config em seu arquivo de configuração de compilação.
Os usuários do Maven podem adicionar a seguinte dependência ao arquivo pom.xml.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
Os usuários do Gradle podem adicionar a seguinte dependência ao build.gradle Arquivo.
compile('org.springframework.cloud:spring-cloud-starter-config')
Agora, você precisa adicionar a anotação @RefreshScope ao seu aplicativo Spring Boot principal. A anotação @RefreshScope é usada para carregar o valor das propriedades de configuração do servidor de configuração.
package com.example.configclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
@SpringBootApplication
@RefreshScope
public class ConfigclientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigclientApplication.class, args);
}
}
Agora, inclua a URL do servidor de configuração em seu arquivo application.properties e forneça o nome de seu aplicativo.
Note - http: // localhost: 8888 config server deve ser executado antes de iniciar o aplicativo cliente de configuração.
spring.application.name = config-client
spring.cloud.config.uri = http://localhost:8888
O código para escrever um endpoint REST simples para ler a mensagem de boas-vindas do servidor de configuração é fornecido abaixo -
package com.example.configclient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RefreshScope
@RestController
public class ConfigclientApplication {
@Value("${welcome.message}")
String welcomeText;
public static void main(String[] args) {
SpringApplication.run(ConfigclientApplication.class, args);
}
@RequestMapping(value = "/")
public String welcomeText() {
return welcomeText;
}
}
Você pode criar um arquivo JAR executável e executar o aplicativo Spring Boot usando os seguintes comandos Maven ou Gradle -
Para Maven, você pode usar o comando mostrado abaixo -
mvn clean install
Após “BUILD SUCCESS”, você pode encontrar o arquivo JAR no diretório de destino.
Para Gradle, você pode usar o comando mostrado abaixo -
gradle clean build
Depois de “BUILD SUCCESSFUL”, você pode encontrar o arquivo JAR no diretório build / libs.
Agora, execute o arquivo JAR usando o comando mostrado aqui:
java –jar <JARFILE>
Agora, o aplicativo foi iniciado na porta 8080 do Tomcat, conforme mostrado aqui -
Você pode ver a janela do console de login; aplicativo cliente de configuração está buscando a configuração dohttps://localhost:8888
2017-12-08 12:41:57.682 INFO 1104 --- [
main] c.c.c.ConfigServicePropertySourceLocator :
Fetching config from server at: http://localhost:8888
Agora acesse o URL, http://localhost:8080/ A mensagem de boas-vindas é carregada do servidor de configuração.
Agora, vá e altere o valor da propriedade no servidor de configuração e acesse a URL de POST do endpoint do atuador http://localhost:8080/refresh e veja o novo valor da propriedade de configuração no URL http://localhost:8080/