nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter

最近需要开发一个文件服务sdk,底层使用mongoDB的GirdFs存储。但是不希望各业务线直连数据库。

所以开发一个Client,封装一下增删改查代码,打包成starter提供。

简单的SpringBootStarter项目我前面有写。

这一篇主要记录下与Nacos的整合。

之前我就写过Nacos的配置管理功能,可以实现热更新,有命名空间隔离。恰好能满足我的需求。

1,创建一个SpringBoot Starter项目

如我前文所述。SpringBoot Starter一般由两个项目组成。一个是Starter,不用写代码,只是一个pom文件,做依赖管理之用。

另一个是config项目,代码都在这里。做自动配置管理使用。

注意,这个项目是一个普通的Spring项目,不是Springboot的,不要依赖Springboot

2,引入依赖

再次强调,Starter不是一个SpringBoot,只是一个Spring项目。所以不能使用nacos-config-spring-boot-starter,而是要用

nacos-spring的依赖

com.alibaba.nacos  nacos-spring-context  0.3.1

2,代码举例

我这里使用nacos的目的是为了把连接Mongo的配置放到配置中心。

核心代码如下:

nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter_第1张图片
nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter_第2张图片

这样我就可以把nacos配的连接参数拉过来。

nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter_第3张图片

3,源码修改

但是呢,有个问题。我要对接几十个业务。他们后台库各不相同。所以我需要根据不同的应用,多去不同的连接参数。

我需要让dataId是可配置的,由用户写在自己的配置文件里,在客户端启动时加载。

很可惜,目前的nacos-spring版本还不支持,据了解下个版本会支持。

这里,我直接修改了nacos-spring-context的源码,加了获取环境变量的功能。

修改方法:

下载nacos-spring-project源码

找到com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder 这个类

这是nacos属性资源的构造器

找到doBuild方法

nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter_第4张图片

加上这一句,就是从本地的环境变量里,取一下dataId这个配置参数

如果有,就用环境变量里的dataId。如果没有,就用代码里写的dataId

(图没截全,下面代码里的dataId都改成realDataId)

ConfigurableEnvironment

nacos dataid修改配置文件_修改nacos源码,打造适合自己的SpringBoot Starter_第5张图片

4,客户端使用

将编写好的Starter打包install

将打包好的Starter以来进来

在application.properties文件里写好需要的配置参数

app.hfs.dataId=mongoapp.hfs.securityKey=GHxy6Y1

完成

你可能感兴趣的:(nacos,dataid修改配置文件)