springboot加载外部的配置文件
Posted dkws-2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot加载外部的配置文件相关的知识,希望对你有一定的参考价值。
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加载外部的配置文件的主要内容,如果未能解决你的问题,请参考以下文章