Lea los parámetros del archivo de propiedades en config-server para resolver el problema de que @Value no se puede leer

Lea los parámetros de la clase común:
Inserte la descripción de la imagen aquí

Descripción: Debido a que se usa config-server, el archivo de configuración no está en el proyecto, sino que se usa bootstrap.yml en su lugar. El archivo de configuración real está en el git remoto, por lo que si usa el método anterior para obtenerlo, obtendrá un error. Puede usar los siguientes métodos para resolverlo. La razón por la que creo personalmente es que después de que el archivo se coloca en git, el proyecto no puede obtener los parámetros del archivo de respuesta a través de bootstrap.yml, lo que resulta en rojo

Solución: deje que esta clase implemente la interfaz EnvironmentAware, anule el método setEnvironment (Environment environment) y obtenga la información del valor del parámetro del entorno, de la siguiente manera

Archivo de parámetros en git:
Inserte la descripción de la imagen aquí

Código de proyecto:

package com.luntek.certificate.config;


import lombok.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

/**
 * @description: elasticsearch相关参数配置
 * @author: Czw
 * @create: 2020-06-29 14:02
 **/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Configuration
public class EsEnvironmentProperties implements EnvironmentAware {
    
    
    private Environment environment;
    /**
     * ES请求地址
     */
    private String host;

    /**
     * 端口
     */
    private int port;

    /**
     * 协议
     */
    private String protocol;

    @Override
    public void setEnvironment(Environment environment) {
    
    
        this.environment = environment;
        this.host = this.environment.getProperty("es.host");
        String property = this.environment.getProperty("es.port");
        this.port = Integer.parseInt(StringUtils.isEmpty(property) ? "0" : property);
        this.host = this.environment.getProperty("es.host");
        System.err.println("port=" + port);
    }

}

efecto:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_42910468/article/details/107021610
Recomendado
Clasificación