SpringBoot集成Nacos实现注册中心与配置中心流程详解

目录
  • SpringBoot整合Nacos
    • 引入Maven依赖
    • 增加配置
  • 示例代码

SpringBoot整合Nacos

引入Maven依赖

首先,我们还是要引入 Maven 依赖

<!--注册中心的依赖-->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-discovery-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>
<!-- 配置中心的依赖 -->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>

这里有一点是需要注意的:注册中心和配置中心的依赖版本要根据 SpringBoot 版本来选择。版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。在这里我使用的 SpringBoot 版本是 2.2.4.RELEASE ,所以选择了 0.2.3 版本的注册中心和配置中心。

增加配置

接下来就是在 application.yml 中增加相关的配置

server:
  port: 80
  servlet:
    context-path: /
spring:
  application:
    name: NacosDemo
nacos:
  config:
    server-addr: 127.0.0.1:8848
  discovery:
    server-addr: 127.0.0.1:8848

示例代码

首先我们需要在项目启动类上增加两个 Nacos 的注解

import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import com.alibaba.nacos.spring.context.annotation.discovery.EnableNacosDiscovery;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableNacosDiscovery //注册中心注解 使用nacos
@NacosPropertySource(dataId = "product_config",autoRefreshed = true) //配置中心注解:autoRefreshed 代表自动刷新注解
public class NacosdemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosdemoApplication.class, args);
    }
}
 

接下来我们需要再增加一个 Nacos 的配置文件

import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
/**
 * @program: NacosDemo
 * @description: NacosConfig
 **/
@Configuration
public class NacosConfig {
    @Value("${server.port}")
    private int serverPort;
    @Value("${spring.application.name}")
    private String applicationName;
    @NacosInjected
    private NamingService namingService;
    @PostConstruct
    public void registerInstance() throws NacosException {
        namingService.registerInstance(applicationName, "127.0.0.1", serverPort);
    }
}
 

最后我们写一个模拟获取配置参数的 Controller 类

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * ConfigController 配置控制器
 * @description: ConfigController
 **/
@RestController
@RequestMapping("/test")
public class ConfigController {
    @NacosValue(value = "${productName}",autoRefreshed = true)
    private  String productName;
    @RequestMapping("/productName")
    public String getProductName(){
        return productName;
    }
}
 

到这里代码已经准备完毕了,既然我们有一个获取配置参数的 Controller,那么我们肯定也少不了要定义一个待获取的配置参数。我们启动 Nacos ,登录它的后台页面,在左侧的配置管理中找到配置列表,在配置列表下创建一个新的配置。

这里一定要注意:在 Nacos 管理页面新增参数时,所填写的 Data ID 值必须要和启动类上 @NacosPropertySource 注解中的 dataId 值是一致的;而且在定义配置内容的时候,配置的名字必须要和 Controller 中定义的名字保持一致。二者中无论哪一个名字不匹配,在启动项目时都会报找不到配置的错误。

到这里,代码和配置都已经准备完毕了,我们启动一下项目看看具体效果... 项目启动后,我们在 Nacos 管理页面左侧找到服务管理下的服务列表,打开服务列表就可以看到我们的项目成功的注册进了 Nacos。

接下来,我们在浏览器访问http://localhost/test/productName,可以看到我们新增的配置被成功的取了出来。如果此时配置需要改变,我们只需要在Nacos 的后台修改对应的配置,然后刷新一下页面就可以看到配置已经动态更新了

到此这篇关于SpringBoot集成Nacos实现注册中心与配置中心流程详解的文章就介绍到这了,更多相关SpringBoot集成Nacos内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

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

  • Nacos配置中心搭建及动态刷新配置及踩坑记录

    目录 一.Nacos配置中心介绍 二.配置中心搭建 1.配置中心启用 2.创建配置文件 3.工程配置 三.试验结果 四.踩坑经历 五.总结 近期有用到阿里的开源配置中心及注册中心nacos,特此记录并分享一些学习笔记及配置踩坑点. 一.Nacos配置中心介绍 从架构图上可以知道,Nacos提供了两种服务,一种是用于服务注册.发现的Naming Service,一种是用于配置中心.动态配置的Config Service,而他们底层均由core模块来支持. 外层提供OpenAPI供客户端使用,并提供

  • Nacos心跳时间配置及服务快速上下线方式

    目录 Nacos心跳时间配置及服务快速上下线 1.修改微服务的nacos的心跳配置时间 2.修改spring cloud的gateway的ribbion配置 Nacos心跳机制 临时实例 持久化实例(永久实例) 各类型使用时机 总结 Nacos心跳时间配置及服务快速上下线 Nacos默认心跳时间是30秒,不太满足正式环境需要,需要调整心跳时间更短,让线上服务上下线能快速感知. 1.修改微服务的nacos的心跳配置时间 preserved.heart.beat.interval: 1000 #该实

  • SpringBoot集成Nacos实现注册中心与配置中心流程详解

    目录 SpringBoot整合Nacos 引入Maven依赖 增加配置 示例代码 SpringBoot整合Nacos 引入Maven依赖 首先,我们还是要引入 Maven 依赖 <!--注册中心的依赖--> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-discovery-spring-boot-starter</artifactId> <v

  • Java nacos动态配置实现流程详解

    目录 一.前言 二.在nacos上创建配置文件 创建配置文件 配置说明 发布并检查配置文件 三. 修改项目配置与动态读取配置文件 添加 nacos 动态配置依赖 在controller与service中使用动态配置 四. 动态配置网关的使用 一.前言 使用动态配置的原因: properties 和 yaml 是写到项目中的,好多时候有些配置需要修改,每次修改就要重新启动项目,不仅增加了系统的不稳定性,也大大提高了维护成本,非常麻烦,且耗费时间. 使用动态配置,则可以避免这些麻烦,可以动态的修改配

  • SpringBoot集成Swagger2构建在线API文档的代码详解

    第一部分:代码集成 pom.xml <!--swagger2配置--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>i

  • SpringBoot同一接口多个实现类配置的实例详解

    SpringBoot项目中可能出现一个接口有多个实现类的情况,如果不进行配置,注入接口时编译器不知道要注入哪个实现类就会报错,因此需要进行配置.以下进行举例: 接口如下: public interface NoticeService { public String noticeUser(Long id); } 两个实现类如下: @Service public class NoticeServiceImpl1 implements NoticeService { public String not

  • springboot集成nacos的配置方法

    本文介绍了springboot集成nacos的配置方法,分享给大家,具体如下: nacos仓库:https://github.com/alibaba/nacos nacos介绍文档:https://nacos.io/zh-cn/docs/architecture.html nacos使用例子:https://github.com/nacos-group/nacos-examples springboot配置-集成nacos,例子代码下载 springboot-nacos-consumer spr

  • Spring Cloud Alibaba使用Nacos作为注册中心和配置中心

    目录 前言 Nacos简介 使用Nacos作为注册中心 安装并运行Nacos 创建应用注册到Nacos 负载均衡功能 使用Nacos作为配置中心 创建nacos-config-client模块 在Nacos中添加配置 Nacos的动态刷新配置 使用到的模块 前言 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用,本文将对其用法进行详细介绍. Nacos简介 Nacos 致力于帮助您发现.配置和管理微服务

  • SpringBoot实现服务接入nacos注册中心流程详解

    目录 概述 接入nacos注册中心 springboot服务pom文件 application.properties配置 源码分析 小结 源码流程图 概述 某些场景下只需要把springboot微服务化而不想引入springcloud如何实现的呢? 下面我们介绍nacos注册中心方案. 接入nacos注册中心 springboot服务pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h

  • 详解Nacos中注册中心和配置中心的实现

    目录 1.Nacos 简介 Nacos 特性介绍 2.注册中心实现 2.1 创建服务提供者 2.2 创建服务消费者 3.配置中心实现 3.1 新建项目并添加依赖 3.2 配置 Nacos Config 信息 3.3 编写代码读取配置文件 3.4 Nacos 控制台添加配置信息 3.5 动态刷新功能 4.项目源码 小结 Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录.而 Nacos 作为 Spring Cloud A

  • SpringBoot集成Nacos的详细教程

    一.环境说明 1.CentOS7 2.Jdk1.8 3.Mysql5.7 4.Nacos1.3 5.SpringBoot2.3.1.RELEASE 6.Maven3.6 二.下载Nacos 1.Nacos官网:https://nacos.io/zh-cn/index.html 2.Nacos下载地址:https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz 三.解压启动Nacos 1.解压

  • SpringBoot集成nacos动态刷新数据源的实现示例

    前言 因为项目需要,需要在项目运行过程中能够动态修改数据源(即:数据源的热更新).这里以com.alibaba.druid.pool.DruidDataSource数据源为例 第一步:重写DruidAbstractDataSource类 这里为什么要重写这个类:因为DruidDataSource数据源在初始化后,就不允许再重新设置数据库的url和userName public void setUrl(String jdbcUrl) { if (StringUtils.equals(this.jd

随机推荐