[Desarrollo de pila completa de Java] Archivo de configuración SpringBoot y configuración multientorno


Spring Boot usa un archivo de configuración global application.properties , que se coloca en el directorio src/main/resources o en /config en el classpath. La función del archivo de configuración global de SpringBoot es modificar los valores de configuración de algunas configuraciones predeterminadas y también permitir que los usuarios personalicen las propiedades de configuración.
application.yaml también es un tipo de archivo de configuración. La diferencia entre los dos archivos de configuración es que el formato de archivo de las propiedades de configuración es diferente.

Este blog usa application.properties para la configuración

Nota: Si no hay un archivo de configuración application.propertieso application.yamlun archivo en el proyecto, puede crear uno nuevo en la ruta del recurso

1. Propiedades de configuración

propiedades personalizadas

Muchas propiedades personalizadas application.propertiesdeben definirse en , como la configuración constante de la base de datos, la configuración del número de puerto predeterminado, etc. Además de estas constantes de configuración, también se permiten constantes personalizadas:

# applicatino.properties 中指定配置
com.atcjx.name=cuijiexiang
com.atcjx.password=123456

Agregue una anotación arriba de la variable miembro en el archivo de configuración que debe usarse @Value(“${path}”), y puede vincular el valor en la clase del archivo de configuración a la variable miembro:

@RestController
public class baseController {
    
    
    @Value("${com.atcjx.name}")
    private String name;

    @Value("${com.atcjx.password")
    private String password;

    @RequestMapping("/")
    String request(){
    
    
        System.out.println("读取到的配置文件数据数据:");
        System.out.println("用户名称:" + name);
        System.out.println("密码:" + password);
        return null;
    }
}

Después de iniciar el proyecto localhost:8080/, puede ver los siguientes resultados:

imagen-20220330203128898

Si hay demasiados valores de atributo para inyectar, tomará mucho tiempo vincular uno por uno. Para vincular rápidamente una gran cantidad de atributos de configuración, se recomienda oficialmente usar @ConfigurationProprites(prefix = “...”)anotaciones para especificar qué prefijo de atributo en el archivo de configuración a utilizar.

@Component
@ConfigurationProperties(prefix = "com.atcjx")
public class configBean {
    
    

    private String name;
    private String password;
    // 省略get、set方法
}

Cabe señalar que @ConfigurationPropertieslas anotaciones deben inyectarse en el contenedor IOC para su uso: con las anotaciones de clase de inyección Spring, por ejemplo @Component, también es necesario agregar adiciones a la clase de entrada @EnableConfigurationProperties.

// 开启允许配置文件配置属性
@EnableConfigurationProperties
@SpringBootApplication
public class SpringBootTestApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringBootTestApplication.class, args);
    }
}

Use la inyección Spring donde necesite usar:

@RestController
public class baseController {
    
    
    // 使用@AutoWired注入
    @Autowired
    configBean configBean;

    @RequestMapping("/")
    String request(){
    
    
        System.out.println("读取到的配置文件数据数据:");
        System.out.println("用户名称:" + configBean.getName());
        System.out.println("密码:" + configBean.getPassword());
        return "";
    }
}

Acceso localhost:8080/: leído con éxito!

imagen-20220330205525745

propiedad de valor aleatorio

En muchos casos, el valor aleatorio también es una parte importante de la configuración.Si la generación del valor aleatorio se incluye en el código, el código será inflado y difícil de entender. Los archivos de configuración de SpringBoot nos ayudan a resolver este problema. El uso ${random}puede generar aleatoriamente diferentes tipos de valores, como: int, long, tipo de cadena.

dudu.secret=${random.value}
dudu.number=${random.int}
dudu.bignumber=${random.long}
dudu.uuid=${random.uuid}
dudu.number.less.than.ten=${random.int(10)}
dudu.number.in.range=${random.int[1024,65536]}

2. Archivo de configuración

Prioridad de perfil

Ordenar por prioridad descendente :

  1. ruta de archivo:/config/applicaiton.properties
  2. ruta del archivo:/aplicación.propiedades
  3. classpath:/config/applicaiton.properties
  4. classpath:/aplicación.propiedades

Las ubicaciones son las siguientes:

imagen-20220330213518226

Los perfiles de mayor prioridad pueden anular los perfiles de menor prioridad.

Comparando los archivos application.properties y application.yml en la misma ruta, ¡la prioridad de configuración de application.properties será mayor!


Configuración multientorno

En muchos casos, las aplicaciones deben implementarse en diferentes entornos de tiempo de ejecución, lo que conduce a diferentes detalles de configuración del entorno. Tome el registro como ejemplo, el registro de producción establecerá el nivel de registro en WARNo superior, y el registro debe escribirse en el archivo de registro para facilitar el mantenimiento y la gestión de la operación y el mantenimiento; el nivel de registro solo necesita DEBUGel nivel durante el desarrollo , y el registro se envía a la consola Tal vez sea una buena opción.

Si cada vez que publica, tiene que eliminar o reemplazar el archivo de configuración, causará problemas innecesarios. SpringBoot nos proporciona una configuración multientorno para resolver este problema.

Antes de configurar varios entornos, debe comprender que el nombre del archivo de configuración en diferentes entornos es diferente. El nombre del archivo de configuración en diferentes entornos comienza con la aplicación, seguido de "-{profile}" para especificar el entorno correspondiente, por ejemplo:

  • application-dev.properties: archivo de configuración del entorno de desarrollo
  • application-prod.properties: archivo de configuración del entorno de producción

Los nombres se pueden definir por sí mismos, principalmente para distinguir diferentes entornos. Ahora podemos iniciar la configuración multientorno.

Paso 1: Cree un archivo de configuración de entorno receptivo

Cree archivos de configuración para tres entornos, a saber, entorno de desarrollo, entorno de prueba y entorno de producción:

imagen-20220331213903167

Paso 2: agregue el entorno predeterminado

Si no se ha especificado el entorno predeterminado, SpringBoot cargará application.properties de forma predeterminada.Si necesita cambiar el entorno, debe especificar el archivo de configuración del entorno de desarrollo en application.properties :

spring.profiles.active=dev

Esto significa que cuando se inicie SpringBoot, cargue el archivo de configuración application-dev.properties , ¡asegúrese de prestar atención al nombre del archivo correspondiente!

¡Ya hemos completado la configuración multientorno!

Reponer

Si el proyecto ha sido empaquetado, cambiar el entorno necesita usar el comando de línea de comando para lograr:

# 设置启动环境为 dev
java -jar xxx.jar --spring.profiles.active=dev

Supongo que te gusta

Origin blog.csdn.net/qq_51439643/article/details/123907772
Recomendado
Clasificación