Función de perfil de Maven

Un proyecto puede tener diferentes entornos, como dev/stateting/prod, etc. Los archivos de configuración de diferentes entornos son diferentes. Cómo cambiar rápidamente al archivo de configuración correspondiente según el entorno es muy importante.

Existe un concepto de perfil tanto en maven como en spring, que se describen a continuación.

1. La función del perfil en el archivo pom en maven es establecer las variables de entorno correspondientes en el proyecto de acuerdo con diferentes entornos, como se muestra en el siguiente ejemplo

Paso 1: Escribir perfil en archivo pom

<profiles>
        <profile>
            <!-- 开发环境 -->
            <id>local</id>
            <properties>
                <env>local</env>
                <profileName>local</profileName>
                <group>LOCAL_GROUP</group>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 联调开发环境 -->
            <id>dev</id>
            <properties>
                <env>dev</env>
                <profileName>dev</profileName>
                <group>DEV_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <env>test</env>
                <profileName>test</profileName>
                <group>TEST_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 预发环境  -->
            <id>pre</id>
            <properties>
                <env>pre</env>
                <profileName>pre</profileName>
                <group>PRE_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境  -->
            <id>prod</id>
            <properties>
                <env>prod</env>
                <profileName>prod</profileName>
                <group>PROD_GROUP</group>
            </properties>
        </profile>
    </profiles>

Paso 2: establezca la ubicación de los recursos y el filtrado en verdadero

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

Cuando el atributo de filtrado es verdadero, se usa principalmente para reemplazar las variables marcadas con ${...} en los archivos de recursos ( .xml, .properties) en el proyecto

Paso 3: Activar perfil

Hay dos formas de activar:

      a. Cuando use el paquete mvn, use el parámetro -P para especificar el perfil, como paquete mvn -P dev, que establecerá las variables en el perfil dev a las variables correspondientes al proyecto, generalmente a través de ${} y @@ inyectar propiedades

      b. Escriba la siguiente etiqueta en la etiqueta de perfil correspondiente, que representa el perfil activo predeterminado <activeByDefault>true</activeByDefault> 

2. Perfiles en primavera

Hay una anotación en Spring llamada @Profile("dev"). Esta anotación solo se puede usar cuando el perfil correspondiente está activado. Este perfil no tiene nada que ver con el experto anterior. Se puede activar de la siguiente manera

1. Al iniciar la aplicación Java, pase los parámetros del sistema a través de -D

  1. -Dspring.profiles.active=dev  

2. Si es un entorno web, puede configurarlo a través de parámetros de inicialización de contexto

  1. <parámetro-contexto>  
  2.     <param-name>spring.profiles.active</param-name>  
  3.     <valor-param>desarrollo</valor-param>  
  4. </context-parámetro>  

3. Agregue PropertySource personalizando

  1. Map<String, Object> map = new HashMap<String, Object>();  
  2. map.put("spring.profiles.active", "dev");  
  3. MapPropertySource propertySource = new MapPropertySource("mapa", mapa);  
  4. env.getPropertySources().addFirst(propertySource);  

4. Establecer perfil directamente

  1. env.setActiveProfiles("desarrollo", "prueba"); 

Cuarto, activar a través de las variables de entorno del sistema operativo

  1. En el proyecto Spring Boot, si se define "SPRING_PROFILES_ACTIVE" en la variable de entorno del sistema operativo de antemano, se adoptará el perfil definido aquí.

Se pueden configurar múltiples perfiles en los métodos anteriores, y los múltiples perfiles están separados por comas/puntos y comas. 

Supongo que te gusta

Origin blog.csdn.net/wokoone/article/details/130410429
Recomendado
Clasificación