Compartir tecnología

Cómo configurar diferentes variables de entorno y principios para proyectos java

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cómo configurar diferentes perfiles

En primer lugar, un proyecto Java requiere diferentes configuraciones de entorno. Al empaquetar, las configuraciones correspondientes se utilizan automáticamente. Entonces, ¿cómo lograrlo?

Cree o agregue un archivo application.yml en el directorio src/main/resources de su proyecto Spring Boot. Aquí es donde Spring Boot busca archivos de configuración de forma predeterminada. Este archivo puede agregar configuraciones comunes.

Luego, también puede crear archivos como application-test.yml, application-prod.yml, etc. en el mismo directorio. Spring Boot reconocerá automáticamente estos archivos de configuración específicos del perfil. Puede definir parámetros para diferentes entornos en estos archivos, como direcciones de bases de datos, direcciones de caché de Redis, etc.
Es decir, en el directorio src/main/resources, puede haber varios archivos como este:

application.yml
application-prod.yml
application-test.yml
  • 1
  • 2
  • 3

Luego, puede usar application-test.yml y application-prod.yml para declarar dos variables con la misma configuración pero con valores diferentes.Por ejemplo
aplicación-test.yml:

mysql:
  url: https://xx.test.com/mysql
  • 1
  • 2

aplicación-prod.yml:

mysql:
  url: https://xx.online.com/mysql
  • 1
  • 2

En código java, puedes usar esta URL dinámicamente:

    @Value("${mysql.url}")
    protected String mysqlUrl;
  • 1
  • 2

Perfecto.

Entonces, ¿cómo utilizar automáticamente el archivo .yml específico del perfil correspondiente cuando el sistema se está ejecutando?Por favor ver más abajo

El principio de cambio automático de perfil.

Veamos cómo se pasan las variables de entorno al proyecto capa por capa desde la red externa.
En primer lugar, un proyecto java suele estar empaquetado mediante Docker. Entonces, comencemos con Docker:

  1. Comando de empaquetado de Docker, con parámetros de entorno:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
  • 1

Palabras clave,construir-arg , establece un parámetro, dc_env=test

  1. Archivo Docker, declararentorno dc, y utilizado para el comando mvn
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
  • 1
  • 2
  • 3

Tenga en cuenta que -P significa configurar perfil

  1. pom.xml, configurar diferentes entornos

El comando mvn en el paso anterior agregó -P. ¿Dónde se usa? Por supuesto, está en el archivo de configuración de Marven, que es pom.xml.

<profiles>
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
                <log.env>test</log.env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profile.active>prod</profile.active>
                <log.env>prod</log.env>
            </properties>
        </profile>
    </profiles>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Arriba, se agregan 2 variables de entorno.Para cada variable, se establecen propiedades, es decir,perfil.activo
¿Dónde se puede utilizar este valor?

¡Úselo en el archivo principal application.yml!

server:
  profiles:
    active: @profile.active@
  • 1
  • 2
  • 3

Defina qué perfil usar según el valor de la variable perfil.activo en el paso anterior.

Desde entonces, las variables definidas en el paquete Docker se han pasado al archivo yml principal. En este archivo, cualquiera que sea el valor server.profiles.active, se utilizará la configuración sub-yml. Por ejemplo, si es una prueba, se cargará la configuración de application-test.yml. ! !

Cómo cambiar de entorno en el entorno de desarrollo

  1. Primero, marven se sincroniza primero. Después de la sincronización, verifique un entorno.
    Insertar descripción de la imagen aquí

  2. A continuación, compile y empaquete localmente y especifique las variables de entorno mediante -P:
    Insertar descripción de la imagen aquí

  3. Finalmente, para ejecutar, haga clic en la esquina superior derecha de la imagen a continuación. Aparecerá una ventana emergente Editar configuración en Active Profile, complete las variables de entorno correspondientes, como prueba.
    Insertar descripción de la imagen aquí

  4. Finalmente, puedes hacer clic en Ejecutar.