Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
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
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
aplicación-prod.yml:
mysql:
url: https://xx.online.com/mysql
En código java, puedes usar esta URL dinámicamente:
@Value("${mysql.url}")
protected String mysqlUrl;
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
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:
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
Palabras clave,construir-arg , establece un parámetro, dc_env=test
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
Tenga en cuenta que -P significa configurar perfil
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>
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@
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. ! !
Primero, marven se sincroniza primero. Después de la sincronización, verifique un entorno.
A continuación, compile y empaquete localmente y especifique las variables de entorno mediante -P:
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.
Finalmente, puedes hacer clic en Ejecutar.