🚀 9.2 Centralizando a Configuração: Spring Cloud Config
Em uma arquitetura de microsserviços, gerenciar arquivos application.yml individuais para cada serviço é um pesadelo logístico. Na Engenharia Premium, utilizamos o Spring Cloud Config para centralizar todas as configurações em um único repositório Git.
O Config Server (O Maestro)
O servidor de configuração atua como uma fonte da verdade. Ele lê os arquivos de um repositório Git e os expõe via HTTP para os outros serviços.
Iniciando o Servidor de Elite
- Dependência:
spring-cloud-config-server. - Ativação:
@EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
## O Config Client (A Orquestra)
A partir do **Spring Boot 2.4+**, a conexão com o servidor de configuração mudou para um modelo muito mais resiliente baseado em **Imports**.
## Conectando a Green Dog ao Servidor
No seu `application.yml` local:
```text
spring:
application:
name: greendog-delivery
config:
import: "optional:configserver:http://localhost:8888"
IMPORTANT
Refresh Dinâmico: Ao utilizar a anotação
@RefreshScopeem seus Controllers ou Services, você pode atualizar as configurações do sistema em tempo de execução (via endpoint/actuator/refresh) sem precisar reiniciar a aplicação!
Com as configurações centralizadas, precisamos de uma forma para que os serviços se encontrem automaticamente. Para isso, usaremos o Eureka.