Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Trabajar con archivos .env para manejar variables de entorno.

Para no tener que crear variables de entorno en mi servidor lo realice mediante archivo .env.

Ver proyecto: api-clinica-medica

  1. Agregar dependencia para la biblioteca Dotenv-java que permite cargar variables de entorno desde un archivo .env
<dependency>
            <groupId>io.github.cdimascio</groupId>
            <artifactId>dotenv-java</artifactId>
            <version>2.2.0</version>
        </dependency>
  1. Crear un archivo .env en la raiz del proyecto
# Datos de configuración de base de datos
DB_HOST=host
DB_NAME=db_name
DB_USER=user
DB_PASSWORD=pass

# Token JWT
JWT_SECRET=my_token_secret
  1. Agregar el archivo .env en el archivo .gitignore para para indicar a Git qué el archivo se va ignorar en el proyecto.
### ENV ###
.env
  1. Ajustar archivo application.properties con las variables de entorno configuradas en .env
spring.application.name=api

#Conexión base de datos
spring.datasource.url=jdbc:mysql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Token JWT
api.security.secret=${JWT_SECRET}
  1. Configurar la clase ApiApplication.java de la siguiente manera.
package med.voll.api;

import io.github.cdimascio.dotenv.Dotenv;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ApiApplication {

    public static void main(String[] args) {
        Dotenv dotenv = Dotenv.load();
        // Establece las propiedades de Spring a partir de las variables de entorno

        // Base de datos
        System.setProperty("DB_HOST", dotenv.get("DB_HOST"));
        System.setProperty("DB_NAME", dotenv.get("DB_NAME"));
        System.setProperty("DB_USER", dotenv.get("DB_USER"));
        System.setProperty("DB_PASSWORD", dotenv.get("DB_PASSWORD"));
        System.setProperty("JWT_SECRET", dotenv.get("JWT_SECRET"));

        SpringApplication.run(ApiApplication.class, args);
    }

}
  1. Para utilizar la variable de entorno en cualquier parte del proyecto.
System.getProperty("JWT_SECRET");

¡Espero les sirva de ayuda!

1 respuesta

¡Hola Jorge!

Excelente sugestión y una buena practica para proteger nuestros datos, un último tip es que te asegures de no subir tu archivo .env a tu repositório en GitHub de esta forma evitas exponer tus secretos en internet :D