spring boot项目中如何使用nacos作为配置中心
作者:左直拳
使用nacos作为配置中心
利用nacos作为配置中心,好处不言而喻,配置外置了,与程序解耦,并且nacos还提供了友好的管理界面。
spring boot的卖点之一,就是与之前的spring相比,所谓约定重于配置,配置文件大大简化。
现在使用nacos这种外置配置中心,是更加向前了一步。
具体应用步骤:
1、pom.xml中引入nacos支持包
2、pom.xml中指向nacos
3、配置文件中使用nacos配置项
如此,即可使用nacos中的配置,修改啥的都很方便,根本不用远程服务器。如果设置refresh选项,连程序都不用重启,即时刷新。
下面是详细介绍:
1、pom.xml中引入nacos支持包
<!--阿里巴巴 nacos 服务发现(这个可以去掉?)--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--阿里巴巴 nacos 配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、pom.xml中指向nacos
这里其实还没有指向nacos,只是定义了一些属性。
因为我们这个项目准确来说,是个spring cloud项目(spring cloud居于spring boot),里面包含多个子系统,因此在最外层的pom.xml定义了公共属性,其中包含nacos。
如果只是spring boot,那么可以省去这一步。
<profile> 。。。 <properties> 。。。 <!--Nacos配置中心地址--> <config.server-addr>192.168.10.248:8848</config.server-addr> <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空--> <config.namespace>gdhysthj</config.namespace> <!--nacos用户名--> <config.username>nacos</config.username> <!--nacos密码--> <config.password>nacos</config.password> 。。。 </properties> </profile>
3、配置文件中使用nacos配置项
由于我这个spring boot项目使用了spring cloud,它有一个bootstrap.yml(bootstrap,绑鞋带?引申为步步为营、引导程序之意),对nacos的应用即在于此。
我猜spring boot项目,直接在application.properties中定义也可以的。
spring: 。。。 cloud: 。。。 nacos: config: namespace: ${config.namespace} #这些就是前面定义的公共属性。如果是spring boot,直接写值应该也可以 server-addr: ${config.server-addr} username: ${config.username} password: ${config.password} shared-configs[0]: data-id: common.properties refresh: true #自动刷新 shared-configs[1]: data-id: db_oracle.properties group: YJZH_GROUP refresh: true shared-configs[2]: data-id: redis.properties refresh: true shared-configs[3]: data-id: rabbitmq.properties refresh: true shared-configs[4]: data-id: minio.properties refresh: true discovery: namespace: ${config.namespace} server-addr: ${discovery.server-addr} username: ${config.username} password: ${config.password} 。。。
由上图可知,指定的命名空间下,有好几个配置文件,然后它们以数组的形式,在spring cloud的bootstrap.yml文件中被指定:shared-configs[0]、shared-configs[1]、。。。
其实将这些分散的配置文件的内容写在一起,合成一个文件也是可以的。
不管是一个文件或多个文件,对于系统来说,最终都是一个配置的集合。
shared-configs[x]是nacos推荐的写法,原先是ext-config[x],现在已经弃用了。
配置文件的书写顺序不重要,一个配置文件,比如db.properties,你放在shared-configs[0]或者shared-configs[1]都没关系。
shared-configs[1]: data-id: db_oracle.properties group: YJZH_GROUP #如果同一个命名空间下,配置文件名称相同咋办?用不同分组名称 refresh: true #是否自动刷新。true的hua,更改nacos配置,在应用这里会立即生效
总结
nacos中的配置,和我们平时写在application.propertis/application.yml中的配置并无不同,在系统中是同样使用。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。