Springboot2.x tutorial básico: archivo de configuración detallado

Cuando se usa Spring Initializr para construir un proyecto springboot, el archivo application.properties se generará automáticamente en src / main / resources. Hoy hablaremos sobre los archivos de configuración de SpringBoot.

El rol de los archivos de configuración

SpringBoot adopta el concepto de "el hábito es mejor que la configuración" Hay muchas configuraciones en el proyecto y se usa la configuración predeterminada, por lo que no es necesario configurarla manualmente.
SpringBoot puede reconocer archivos de configuración en formato de propiedades y formato yml (generalmente usamos más el formato yml). Cuando necesite modificar la configuración predeterminada o personalizar la configuración , puede modificar el archivo de configuración para lograr el objetivo.

Uso básico de archivos de configuración

Este es un ejemplo de configuración que usa el formato yml para ilustrar cómo configurar en application.yml y cómo obtenerlo en el código.

Número, cadena, get booleano

Escritura del archivo de configuración:

version: 1.0
author: codhome.vip
flag: true

Utilice @Value para obtener:

@Value("${version}")
float version;
@Value("${author}")
String author;
//这里的true为默认值
@Value("${flag:true}")
boolean flag;

Objeto, escritura de mapas y acceso

Escritura del archivo de configuración:

user:
  userName: codehome
  age: 18
  forbidden: true

Utilice @ConfigurationProperties para obtener:

@Configuration
@ConfigurationProperties(prefix = "user")
@Data
public class UserProperties {
    String userName;
    int age;
    boolean forbidden;
}
//注入使用
@Autowired
UserProperties userProperties;

Adquisición de lista, conjunto, matriz

Escritura del archivo de configuración:

random: 10,20,30

Utilice @Value para obtener:

@Value("#{'${random}'.split(',')}")
int[] randoms; //List<Integer>也可以

Escritura del archivo de configuración:

random1:
  users:
    - zhangsao
    - lisi
    - wangwu

Utilice @ConfigurationProperties para obtener:

@Configuration
@ConfigurationProperties(prefix = "random1")
@Data
public class UserProperties {
    List<String> users;
}

Resume la diferencia entre las dos anotaciones

Configuración multientorno

Cuando escribimos el archivo de configuración principal, el nombre del archivo puede ser application- {profile} .properties / yml, use spring.profiles.active para activar qué archivo de configuración usar

spring:
  profiles:
    active: dev
---

#配置开发环境
spring:
  profiles: dev
server:
  port: 9000

---

#配置生产环境
spring:
  profiles: prod
server:
  port: 9100

---

#配置测试环境
spring:
  profiles: dev
server:
  port: 8000

Prioridad de perfil

Archivo de configuración interna del proyecto

  1. Cuando application.properties y application.yml coexisten en el mismo directorio, la prioridad de configuración de propiedades es mayor
  2. El orden de carga del archivo de configuración predeterminado en ConfigFileApplicationListener
    carpeta de configuración del directorio raíz del proyecto> archivo de configuración del directorio raíz> carpeta de recursos cofnig> archivo de configuración de recursos
  3. Cuando los atributos de varios archivos de configuración no entran en conflicto, la configuración es complementaria
  4. También puede especificar la dirección del archivo de configuración
java -jar run-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties

Colocación externa

  1. Variables de entorno del sistema operativo (como el nombre de usuario del sistema operativo)
  2. Valor de propiedad aleatorio. * Configurado por RandomValuePropertySource
  3. El archivo de configuración de la aplicación- {perfil} .properties fuera del paquete jar
  4. El archivo de configuración de la aplicación- {perfil} .properties dentro del paquete jar
  5. El archivo de configuración application.properties fuera del paquete jar (este nivel se usa a menudo en el entorno de prueba. Por ejemplo, colocar un archivo de configuración en el mismo directorio de nivel del paquete jar cubrirá todos los archivos de configuración dentro del paquete jar)
  6. El archivo de configuración application.properties en el paquete jar se busca desde fuera del paquete jar al paquete jar, y primero se carga el perfil que se va a cargar y luego se carga el perfil sin el perfil.
  7. @PropertySource en la clase de anotación @Configuration (especificar manualmente para importar archivos de configuración externos)
  8. Las propiedades predeterminadas especificadas por SpringApplication.setDefaultProperties, establecidas en su propio código de programa, tienen la prioridad más baja

Mil millas comienzan con un solo paso. Aquí está el quinto artículo de la serie de tutoriales de SpringBoot. Todos los códigos fuente del proyecto se pueden descargar en mi GitHub .

Supongo que te gusta

Origin blog.csdn.net/github_35592621/article/details/108248838
Recomendado
Clasificación