这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战
在一次开发中,领导提供了一个需求,将springboot配置文件的值存放在数据库中,并且能否动态更改。在调用后,决定先做了一个初版。
1.实现代码
1 | js复制代码import java.sql.Connection; |
1 | js复制代码@SpringBootApplication |
2.原理简介
在springboot初始化时,会识别application .xml,并将扫描到的配置类放于MutablePropertySources中,在执行初始化后,将会执行addListeners,在addListeners中重新复写了MutablePropertySources对象。将从数据库中查询到的配置覆盖到已经查询到的对象中,从而实现配置文件的更改。
1 | js复制代码获取MutablePropertySources 代码。 |
3.使用中间件
最后该方案只是做了一个demo。建议使用apollo或者nacos作为配置中心。功能更加的强大且更为稳定。何苦自己造轮子呢。。。
本文转载自: 掘金