文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

spring boot项目中如何使用nacos作为配置中心

2022-12-29 18:01

关注

使用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中的配置并无不同,在系统中是同样使用。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯