La configuración del archivo de configuración Spring Boot solicita automáticamente el procesador de configuración

Efecto

Cuando se utilizan herramientas de desarrollo como Idea, aparecerá el mensaje de finalización correspondiente al ingresar un prefijo en el archivo de configuración, lo que permitirá a los desarrolladores configurar fácilmente las propiedades correspondientes. La captura de pantalla del efecto es la siguiente:

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Descripción de metadatos

Estas sugerencias provienen de la definición de contenido en los archivos de datos de origen spring-configuration-metadata.jsony en la especificación de configuración automática de primavera. additional-spring-configuration-metadata.jsonCon especificaciones fijas implementadas, las herramientas de desarrollo pueden cargar las indicaciones de finalización de información correspondientes desde los archivos de datos fuente json correspondientes, lo que hace que el proceso de desarrollo sea más amigable y conveniente.

spring-configuration-metadata.jsonspring-boot-configuration-processorGeneradas automáticamente por complementos , additional-spring-configuration-metadata.jsonlas configuraciones adicionales requieren mantenimiento manual. Este archivo de configuración adicional se crea porque la generación automática se sobrescribirá después de cada compilación. La generación automática debe combinarse con la clase Java definida y modificarse con anotaciones antes de que el complemento @ConfigurationPropertiespueda cargarla y generarla automáticamente .spring-boot-configuration-processorspring-configuration-metadata.json

Adjunto: Varios otros archivos principales sobre la configuración automática de SpringBoot
Archivo de configuración: spring.factories
Archivo de configuración: spring-configuration-metadata.jsony additional-spring-configuration-metadata.json
Archivo de configuración: spring-autoconfigure-metadata.properties
Complemento: spring-boot-configuration-processor
Complemento: spring-boot-autoconfigure-processor
Selector DeferredImportSelector:AutoConfigurationImportSelector

Desarrollo e implementación

Para lograr el efecto anterior, el siguiente es un ejemplo de código específico:

1. Definir una clase de configuración Java

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 测试配置类
 * 
 * @author shanhy
 */
@Data
@Component
@ConfigurationProperties(prefix = "shanhy.test")
public class TestProperties {
    
    
    
    /**
     * 唯一ID
     */
    private int id = 100;
    
    /**
     * 名称
     */
    private String name;
    
    /**
     * 标志位
     */
    private boolean flag = true;
    
}

Las anotaciones de Java encima de los atributos eventualmente se generarán automáticamente en el archivo de metadatos spring-configuration-metadata.json, así que agregue estrictamente la descripción de la anotación.

2. Agregar dependencias de complementos

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

Este complemento genera automáticamente el contenido del archivo de metadatos. Si no necesita utilizar el complemento para generar metadatos automáticamente, pero desea configurar los metadatos de sus propios atributos definidos, puede mantenerlo usted mismo resources/META-INF/additional-spring-configuration-metadata.json.

3. Compile y verifique los resultados.

Utilice Mavan para compilar y generar archivos de metadatos y luego verificar los resultados en las propiedades.

Para verificar los metadatos agregados personalizados, agregué resources/META-INF/additional-spring-configuration-metadata.jsonuna configuración personalizada en el archivo:

{
    
    
  "properties": [
    {
    
    
      "name": "shanhy.test.additional-content",
      "type": "java.lang.Boolean",
      "description": "附加内容"
    }
  ]
}

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí


(FIN)

Supongo que te gusta

Origin blog.csdn.net/catoop/article/details/129937681
Recomendado
Clasificación