1. Como funciona o /actuator/refresh
?
O /actuator/refresh
recarrega propriedades externas de qualquer origem suportada pelo Spring Cloud (não só ConfigMap
). Ou seja, se sua aplicação já busca configs de Portais Managers via PropertySource ou Config Server, o refresh pode funcionar sim para esses valores.
2. Fontes Externas Suportadas
- Spring Cloud Config Server (centraliza configs em Git, S3, etc.)
- AWS Parameter Store e AWS Secrets Manager (via Spring Cloud AWS)
- HashiCorp Vault, Consul, etc.
- Qualquer fonte implementada via
PropertySource
Resumo: Se o Portal Manager está integrado como um PropertySource do Spring Environment, o
/actuator/refresh
pode recarregar esses valores.
3. Exemplo: AWS Parameter Store/Secrets Manager
a) Dependências
<!-- Spring Boot Actuator e Cloud -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.awspring.cloud</groupId>
<artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
</dependency>
<!-- ou -->
<dependency>
<groupId>io.awspring.cloud</groupId>
<artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId>
</dependency>
b) Configuração do application.properties
management.endpoints.web.exposure.include=refresh,health,info
spring.config.import=aws-parameterstore:/ # ou aws-secretsmanager:/
c) Uso no código
@Value("${minha.configuracao.sensivel}")
private String segredo;
d) Processo de atualização
- Altere o valor no Portal Manager (ex: AWS Parameter Store).
-
Chame o endpoint
/actuator/refresh
na aplicação. - O valor é recarregado sem reiniciar o pod.
4. Observações Importantes
- Nem todos os beans/leitura de config reagem automaticamente ao refresh! Use
@RefreshScope
nas classes/beans que dependem desses valores dinâmicos.
@RefreshScope
@RestController
public class MinhaController {
@Value("${minha.configuracao.sensivel}")
private String segredo;
// ...
}
- O
/actuator/refresh
não recarrega configs de pods alheios. Se você tem múltiplos pods, chame em todos (ou utilize Spring Cloud Bus para broadcast). - Segurança: configure autenticação no endpoint
/actuator/refresh
! - Para AWS, use as bibliotecas do Spring Cloud AWS.
5. Fluxo Resumido
- Integre o Portal Manager à sua aplicação Spring Boot via PropertySource.
- Use
/actuator/refresh
para recarregar configs em tempo real. - Marque beans críticos como
@RefreshScope
.
Conclusão
Você não precisa usar ConfigMap para usar /actuator/refresh
! O segredo é garantir que seu Portal Manager está integrado como fonte de propriedades externas no Spring. Após alterar o valor no portal, basta acionar o refresh.
Top comments (0)