Class HealthController

java.lang.Object
br.com.xadm.comum.web.HealthController

@Requires(missingBeans=io.micronaut.management.endpoint.health.HealthEndpoint.class) @Controller("/health") @Secured("isAnonymous()") public class HealthController extends Object
Health check de fallback com a versão em runtime — shape plano {status, versao} (norma X-Adm de versionamento e health).

Condicional (@Requires(missingBeans = HealthEndpoint.class)): só provê /health quando o HealthEndpoint do micronaut-management está ausente. Como a lib traz micronaut-management transitivamente (VersaoInfo é InfoSource), o HealthEndpoint é enabled-by-default e este controller fica dormente; o app recebe o /health rico (DB-aware) do management. Quem quiser o shape plano desliga o do management (endpoints.health.enabled: false) e este controller acorda — sem as duas rotas GET /health colidirem (Micronaut responde 400 a toda requisição quando colidem).

Trade-off consciente do shape plano: é liveness (o app está no ar), não readiness — não agrega o estado do banco. A versão também está em /info via VersaoInfo.

  • Constructor Details

    • HealthController

      public HealthController()
      Construtor padrão.