码迷,mamicode.com
首页 > 编程语言 > 详细

springboot加载外部的配置文件

时间:2020-01-22 12:40:11      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:mutable   ica   string   通过   load   config   property   this   文件读取   

package com.liuchao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringApplicationRunListener;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertiesPropertySource;
import org.springframework.core.env.PropertySource;

import java.io.IOException;
import java.util.Properties;


public class MySpringApplicationRunListener implements SpringApplicationRunListener, Ordered {
    private SpringApplication application;
    private String[] args;

    @Override
    public void starting() {
        System.out.println(">>>>starting<<<<");
    }

    public MySpringApplicationRunListener(SpringApplication application, String[] args) {
        this.application = application;
        this.args = args;
    }

    @Override
    public void environmentPrepared(ConfigurableEnvironment environment) {
        // 配置文件读取到程序中 思路需要自己将本地文件读取到程序中,让后在放入到SpringBoot容器
        Properties properties = new Properties();
        try {
            // 1. 读取我们的my.properties文件
            properties.load(this.getClass().getClassLoader().
                    getResourceAsStream("my.properties"));
            // 2. 读取名称名称为my
            PropertySource propertySource = new
                    PropertiesPropertySource("my", properties);
            //3. 将资源添加到SprigBoot项目中
            MutablePropertySources propertySources = environment.getPropertySources();
            // 4.通过该api接口可以将配置文件读取 到SpringBoot项目中
            propertySources.addLast(propertySource);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @Override
    public void contextPrepared(ConfigurableApplicationContext context) {

    }

    @Override
    public void contextLoaded(ConfigurableApplicationContext context) {

    }

    @Override
    public void started(ConfigurableApplicationContext context) {

    }

    @Override
    public void running(ConfigurableApplicationContext context) {

    }

    @Override
    public void failed(ConfigurableApplicationContext context, Throwable exception) {

    }

    @Override
    public int getOrder() {
        return -1;
    }
}
在resource 目录下面建 META-INF/spring.factories
文件内容为

#org.springframework.boot.SpringApplicationRunListener=\ 这个值是定死的值
#com.liuchao.MySpringApplicationRunListener  这个是自己定义的监听类

 

springboot加载外部的配置文件

标签:mutable   ica   string   通过   load   config   property   this   文件读取   

原文地址:https://www.cnblogs.com/dkws/p/12228105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!