Configuração de aplicações Kotlin: Biblioteca Hoplite

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Hoplite e para que serve?

Hoplite é uma biblioteca leve e type-safe para configuração de aplicações Kotlin. Ela resolve o problema de parsing manual de arquivos de configuração (YAML, JSON, TOML, HOCON) e sua conversão em objetos Kotlin estritamente tipados. Em vez de escrever dezenas de linhas de código para ler application.conf, você define uma data class, e o Hoplite desserializa a configuração com validação em tempo real.

Como instalar

Adicione a dependência no build.gradle.kts:

repositories {    mavenCentral()}

dependencies { implementation("com.sksamuel.hoplite:hoplite-core:2.7.5") implementation("com.sksamuel.hoplite:hoplite-yaml:2.7.5") // para YAML}

Funcionalidades principais

  • Type-safety: conversão automática de strings para Int, Boolean, LocalDate, enum e objetos aninhados.
  • Validação: anotações embutidas @Range, @Pattern, @NotEmpty e validadores personalizados.
  • Suporte a formatos: YAML, JSON, TOML, HOCON, .properties e variáveis de ambiente.
  • Perfis: alternância entre configurações dev/prod sem duplicação de código.
  • Segredos: integração com Vault e variáveis de ambiente para senhas.

Exemplo de código em Kotlin

import com.sksamuel.hoplite.ConfigLoaderimport com.sksamuel.hoplite.yaml.YamlPropertySource

data class DatabaseConfig( val host: String, val port: Int = 5432, val credentials: Credentials)

data class Credentials( val username: String, @com.sksamuel.hoplite.validator.Secret val password: String)

fun main() { val config = ConfigLoader.Builder() .addSource(YamlPropertySource("config.yaml")) .build() .loadConfigOrThrow<DatabaseConfig>()

println("Connecting to ${config.host}:${config.port}") println("User: ${config.credentials.username}")}

Quando usar

Hoplite é ideal para: microsserviços em Ktor ou Spring Boot, utilitários de linha de comando que precisam de tipagem estrita, projetos que exigem separação em perfis dev/staging/prod, e qualquer aplicação Kotlin onde se queira evitar ConfigFactory.parseResources() e mapeamento manual. Não é recomendado para scripts simples com um ou dois parâmetros — nesses casos, System.getenv() é suficiente.

Conclusão

Hoplite torna a configuração em Kotlin tão segura e elegante quanto a própria linguagem. Se você está cansado de ClassCastException ao ler configurações — experimente esta biblioteca.

Recommendations