3
respostas

[Dúvida] Como ler variáveis de ambiente do .env

Eu vim do javascript e lá é possível definir variáveis de ambiente dentro do arquivo .env para usar no projeto. Gostaria de saber se é possível fazer a mesma coisa em Java e como faz.

3 respostas

E aí! Então, no mundo Java, o esquema é um pouco diferente do que você tá acostumado com o JavaScript, mas dá pra fazer algo parecido. O .env do JavaScript é bem popular pra guardar variáveis de ambiente, né? Em Java, geralmente a gente usa um arquivo .properties ou até mesmo as variáveis de ambiente do sistema operacional mesmo.

Mas, se você quer algo bem similar ao .env, tem bibliotecas por aí que te ajudam. Uma delas é a dotenv-java. Com ela, você pode criar um arquivo .env no seu projeto Java e carregar as variáveis de ambiente de lá.

  1. Primeiro, adicione a dependência no seu pom.xml (se estiver usando Maven):
<dependency>
    <groupId>io.github.cdimascio</groupId>
    <artifactId>java-dotenv</artifactId>
    <version>5.2.2</version> <!-- Verifique a última versão no repositório Maven -->
</dependency>
  1. Depois de adicionar a dependência, crie um arquivo .env na raiz do seu projeto e coloque suas variáveis lá, tipo:
MINHA_VARIAVEL=meu_valor_secreto
OUTRA_VARIAVEL=meu_outro_valor
  1. Por fim, no seu código Java, você pode ler essas variáveis assim:
import io.github.cdimascio.dotenv.Dotenv;

public class Main {
    public static void main(String[] args) {
        Dotenv dotenv = Dotenv.load(); // Carrega o arquivo .env na raiz do projeto
        String minhaVariavel = dotenv.get("MINHA_VARIAVEL");
        String outraVariavel = dotenv.get("OUTRA_VARIAVEL");
        
        System.out.println(minhaVariavel); // Imprime "meu_valor_secreto"
        System.out.println(outraVariavel); // Imprime "meu_outro_valor"
    }
}

E é isso! Com a biblioteca dotenv-java, você consegue ter um comportamento bem parecido com o .env do JavaScript em seus projetos Java.

Essas questões das variáveis de ambiente, tem diferença de segurança entre a que foi feita na aula e a do java ?

Como essas as variáveis de ambiente do arquivo '.env' podem ser lidas no arquivo 'application.properties'? Tentei procura uns tutorias disso, mas não tem nenhum que me ajudou.