Class ConfigService

java.lang.Object
br.com.vantroba.bi.transporte.configuracao.ConfigService

@Singleton public class ConfigService extends Object
Leitura de configurações globais (bi_configuracao) em runtime, com cache curto.

Padrão de uso pelo backend deste app:

@Inject ConfigService config;
int timeoutMs = config.getInt("slow_query_timeout_ms", 10_000);

Cache: ConcurrentHashMap simples com TTL fixo de 30000L ms. Janela máxima de staleness entre edição via UI admin e o backend aplicar o valor novo = 30 s.

Esta camada é apenas leitura. Edição vai por BiConfiguracaoRepository; a UI admin passa pelo ConfiguracaoAdminService, que bypassa este cache para refletir o estado fresco do PG na lista.

  • Constructor Details

    • ConfigService

      public ConfigService(BiConfiguracaoRepository repository)
      Cria o serviço injetando o repositório que faz a leitura no PG.
      Parameters:
      repository - repositório de configurações.
  • Method Details

    • getString

      public String getString(String id, String defaultValue)
      Lê o valor da chave como String. Retorna defaultValue se a chave não existe.
      Parameters:
      id - chave da configuração.
      defaultValue - valor retornado se a chave não existe.
      Returns:
      o valor cru armazenado, ou defaultValue.
    • getInt

      public int getInt(String id, int defaultValue)
      Lê o valor da chave como int. Retorna defaultValue se a chave não existe ou se o valor não parsea como inteiro (loga warning).
      Parameters:
      id - chave da configuração.
      defaultValue - valor retornado em chave ausente ou falha de parse.
      Returns:
      o valor parseado, ou defaultValue.
    • getBool

      public boolean getBool(String id, boolean defaultValue)
      Lê o valor da chave como boolean (exige "true"/"false" em lowercase). Em chave ausente ou string inesperada retorna defaultValue.
      Parameters:
      id - chave da configuração.
      defaultValue - valor retornado em chave ausente ou string fora da convenção.
      Returns:
      o valor parseado, ou defaultValue.
    • getDuration

      public Duration getDuration(String id, Duration defaultValue)
      Lê o valor da chave como Duration a partir de um inteiro em milissegundos. Útil pra timeouts armazenados como INT (ex.: slow_query_timeout_ms).
      Parameters:
      id - chave da configuração.
      defaultValue - duração retornada em chave ausente ou falha de parse.
      Returns:
      a duração resultante, ou defaultValue.
    • invalidar

      public void invalidar()
      Invalida todas as entradas do cache. Reservado para testes; produção depende do TTL.