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

目录
  • 使用nacos作为配置中心
  • 1、pom.xml中引入nacos支持包
  • 2、pom.xml中指向nacos
  • 3、配置文件中使用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中的配置并无不同,在系统中是同样使用。

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

(0)

相关推荐

  • Springcloud-nacos实现配置和注册中心的方法

    最近,阿里开源的nacos比较火,可以和springcloud和dubbo共用,对dubbo升级到springcloud非常的方便.这里学习一下他的配置和注册中心.我主要记录一下它的使用方式和踩得坑. nacos简单介绍 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos 帮助您更敏捷和容易地构建.交付和管理微服务平台. Nacos 是构建以"服务"为中心的现代应用架构 (例如

  • bootstrap.yml如何读取nacos配置中心的配置文件

    目录 bootstrap.yml读取nacos配置中心配置文件 依赖的版本交由父模块进行版本控制了(另附上依赖代码) 父模块的依赖管理 总结 bootstrap.yml读取nacos配置中心配置文件 最近搞nacos做为springboot的配置中心时,运行项目就一直报错,报错原因是没有加载到配置文件,可是nacos服务的地方又确确实实配置了配置文件,最后在启动的控制台中找到了一些线索,结合百度和源码查看找到了原因所在. 另外提一嘴,如果你导入了spring-cloud-starter-alib

  • Nacos作为配置中心注册监听器方法

    目录 前言 项目文件说明 pom依赖 bootstrap.yml NacosConfig配置类 监听器实现类-默认实现 监听器实现类-json配置处理 注册监听器 监听器的效果 前言 本文主要讨论Nacos作为配置中心时,其中配置内容发生更改时,我们的应用程序能够做的事. 一般使用监听器来实现这步操作. 对应的监听器接口是:com.alibaba.nacos.api.config.listener.Listener 接下来看看如何注册一个监听器. 项目文件说明 以下操作都是在 SpringBoo

  • Spring Boot 项目中使用Swagger2的示例

    本文介绍了Spring Boot 项目中使用Swagger2的示例,分享给大家,具体如下: 添加Swagger2依赖 在pom.xml中加入Swagger2的依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency&g

  • 在 Spring Boot 项目中实现文件下载功能

    (一)需求 在您的 springboot 项目中,可能会存在让用户下载文档的需求,比如让用户下载 readme 文档来更好地了解该项目的概况或使用方法. 所以,您需要为用户提供可以下载文件的 API ,将用户希望获取的文件作为下载资源返回给前端. (二)代码 maven 依赖 请您创建好一个 springboot 项目,一定要引入 web 依赖: <dependency> <groupId>org.springframework.boot</groupId> <a

  • Spring Boot项目中定制拦截器的方法详解

    这篇文章主要介绍了Spring Boot项目中定制拦截器的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视

  • 详解Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> &

  • spring boot 项目中使用thymeleaf模板的案例分析

    准备 MySql数据库,表Prereg,IDEA 数据库中的表如下所示: IDEA目录结构如下: 添加thymeleaf依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 开始添加代码: 在controller包添加类"

  • Spring Boot项目中实现文件上传功能的示例

    在实际项目中,文件上传是很多项目必不可少的一个功能.那么在 Spring Boot 项目中又是如何来实现文件上传功能的呢?一般来说,上传的文件可以保存到项目根目录下的某一文件夹中,但这样做显然是不太合适的.因此我们选择将文件上传到专门的文件服务器中.很多云计算厂商都提供文件存储服务.这里我选择的是阿里云的对象存储(OSS). 一.配置OSS 1. 导入SDK 首先,你需要注册阿里云的账号并开通对象存储服务.在准备工作完成之后,需要导入 JAVA 版本的 SDK,这里使用 maven 进行导入 <

  • Spring Boot项目中集成微信支付v3

    1. 前言 最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来.前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波.期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好几天. 项目地址: https://github.com/NotFound403/payment-spring-boot 别忘记给个Star啊. 那么都完善了哪些内容呢?胖哥来一一介绍. 2. Maven 中央仓库 是的,不用再自行编译

  • Spring Boot项目添加外部Jar包以及配置多数据源的完整步骤

    前言 最近项目需要和Oracle数据库进行交互,然后我从Maven中央仓库下载数据库驱动jar包,但怎么都下不下来,我到Oracle官网上一看,我去,居然不让用Maven直接下(大学时候用过Oracle,很久远的事情了0rz),没办法我还是直接下载jar包放到我的项目里面吧.SpringBoot项目引入外部jar包是非常方便的,包含打引入外部jar等操作. 我的做法如下: 首先在src同级目录建一个lib文件夹,将第三方jar包放到这个文件内,比如我将ojdbc6.jar 这个jar包放到这个地

  • Spring Boot项目中定制PropertyEditors方法

    在Spring Boot: 定制HTTP消息转换器一文中我们学习了如何配置消息转换器用于HTTP请求和响应数据,实际上,在一次请求的完成过程中还发生了其他的转换,我们这次关注将参数转换成多种类型的对象,如:字符串转换成Date对象或字符串转换成Integer对象. 在编写控制器中的action方法时,Spring允许我们使用具体的数据类型定义函数签名,这是通过PropertyEditor实现的.PropertyEditor本来是JDK提供的API,用于将文本值转换成给定的类型,结果Spring的

  • Spring boot项目中异常拦截设计和处理详解

    背景: 项目运行过程中会出现各种各样的问题,常见的有以下几种情况: 业务流程分析疏漏,对业务流程的反向操作.边界分析设计不充分 调用外部服务.调用外部系统出现的超时.错误.返回值与预期不符 外部资源连通性问题,db等服务器出现的网络抖动或宕机 无论是分析设计.开发.测试.线上都需要能够准确定位问题并制定解决方案. 目的: 规范化异常的处理过程,避免异常被吞和到处都在捕获异常的情况 准确的反馈异常信息,为定位问题提供依据 通用性异常全局处理,降低业务开发关注度 对异常情况进行预警,以便能够及时响应

随机推荐