springboot jar包所在目录外部配置文件 覆盖apollo配置

package com.web.config;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.PriorityOrdered;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertySource;

/**
 * @author
 * @date 2020/8/10 16:45
 * @Description jar包所在目录配置文件 覆盖apollo配置
 */
@Configuration
public class PropertyProcessor implements BeanFactoryPostProcessor, EnvironmentAware, PriorityOrdered {
    
    

    private ConfigurableEnvironment environment;

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    
    
        MutablePropertySources propertySources = environment.getPropertySources();
        PropertySource<?> propertySource = propertySources.get("applicationConfig: [file:./application.yml]");
        if (null != propertySource) {
    
    
            propertySources.addFirst(propertySource);
        }
        PropertySource<?> source = propertySources.get("applicationConfig: [file:./application.properties]");
        if (null != source) {
    
    
            propertySources.addFirst(source);
        }
    }

    @Override
    public void setEnvironment(Environment environment) {
    
    
        this.environment = (ConfigurableEnvironment) environment;
    }

    @Override
    public int getOrder() {
    
    
        return Ordered.LOWEST_PRECEDENCE;
    }
}


猜你喜欢

转载自blog.csdn.net/m0_37859032/article/details/107955801
今日推荐