springboot nacos_整合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的配置放到配置中心。

核心代码如下:

42e57453072743e785034f603cba1d19
c6d7da74384c4b69a663c9cc998efe55

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

a514e09f9af94d83b316bef8200e5421

3,源码修改

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

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

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

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

修改方法:

下载nacos-spring-project源码

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

这是nacos属性资源的构造器

找到doBuild方法

b67db336da344f35b1c7e0fbbfc51366

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

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

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

ConfigurableEnvironment

4f61f9c776fc4b66a7f7b9bd9bc18960

4,客户端使用

将编写好的Starter打包install

将打包好的Starter以来进来

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

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

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值