Estou fazendo o projeto do curso e gostaria de garantir que as credenciais do banco de dados não fiquem expostas no arquivo application.properties e não sejam enviadas para o GitHub. Para isso, estou tentando usar variáveis de ambiente para armazenar essas credenciais. No entanto, estou encontrando dificuldades.
Estou usando o Java Dotenv: Adicionei a dependência java-dotenv no meu pom.xml: io.github.cdimascio java-dotenv 5.2.2
Criei um arquivo .env na raiz do projeto com o seguinte conteúdo: SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/mydatabase SPRING_DATASOURCE_USERNAME=root SPRING_DATASOURCE_PASSWORD=password
Configurei o Arquivo application.properties: spring.datasource.url=${SPRING_DATASOURCE_URL} spring.datasource.username=${SPRING_DATASOURCE_USERNAME} spring.datasource.password=${SPRING_DATASOURCE_PASSWORD} spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
E usei o dotenv no Application.java:
Dotenv dotenv = Dotenv.load();
dotenv.get("SPRING_DATASOURCE_URL");
dotenv.get("SPRING_DATASOURCE_USERNAME");
dotenv.get("SPRING_DATASOURCE_PASSWORD");
Porém, parece que o Spring Boot não está substituindo a variável ${SPRING_DATASOURCE_URL} pelo valor correto da variável de ambiente com o seguinte erro ao tentar roda a aplicação: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl, ${SPRING_DATASOURCE_URL}
Gostaria de saber como corrigir isso ou se teria alguma outra abordagem que faça o que quero.