Lea los parámetros de la clase común:
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:
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: