SpringBoot 实现配置中心的数据采集

需求痛点:

    大型、中型项目涉及的应用多、配置的参数数据多,每次修改配置文件需要研发修改配置文件,提交发版说明(或者工作票)。运维根据修改内容重新修改配置文件,并将项目重新启动,过程很容易出现配置信息修改错误的情况。

配置中心:

    为解决这类问题,系统提出组件“配置中心”需求,将系统用到的配置信息,存放到数据库中,应用重新启动时候加载(或者应用每隔60秒 自动重新加载一遍配置中心的数据库)。

springboot 建设思想:

首先看看默认的springboot 的方法

@SpringBootApplication
@Controller
public class LiangApplication extends SpringBootServletInitializer{
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public ModelAndView index() {
		ModelAndView model = new ModelAndView();
		model.setViewName("index");
		return model;
	}
	/**
	 * 注意:此main方法就是springboot的启动方法,他的启动仅仅是做run执行
	 * 如果改成配置中心,需要首先能够加载,当前项目的 resources/application.properties 文件
	 * 采用增量设计思路,在读取项目配置信息的基础上,在去读取数据库的配置,共同组合成项目初始化信息。
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(LiangApplication.class, args);
	}
}

再看看调整后的方法,此方法没有联数据库仅仅是一个properties的事例

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

@SpringBootApplication
public class DubbobootApplication {
	public static void main(String[] args) {
		/**
		 * 思路
		 * 读取配置文件信息到 properties 中
		 * 数据库的信息采用 key - value 的设计,将数据库中的信息缓存到properties 中。
		 * 或者在此处专门处理 读取数据库的 放入一个公用的类中。
		 */
		Properties properties = new Properties();
		InputStream inputStream = DubbobootApplication.class.getClassLoader().getResourceAsStream("liang.properties");
		try {
			properties.load(inputStream);
			properties.setProperty("liang","---liang");
		} catch (IOException e) {
			e.printStackTrace();
		}
		SpringApplication app = new SpringApplication(DubbobootApplication.class);
		app.setDefaultProperties(properties);
		app.run( args);
	}
}
读取到properties中优点,使用springboot自己调用properties的注解,方便使用。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页