首页 > 其他分享 >SpringBoot 整合 Nacos

SpringBoot 整合 Nacos

时间:2024-11-13 23:30:58浏览次数:1  
标签:SpringBoot spring nacos Nacos NACOS 整合 alibaba cloud

在项目开发过程中,我们经常使用 Nacos 作为配置中心和注册中心。本文章我们就从代码层面研究下 Spring Boot 是如何整合 Nacos 使用的。

Nacos 安装启动

一键傻瓜试安装即可,官网 写的很清楚这里不在赘述。这里以Window环境安装为例。

下载下来,启动 Nacos 将模式改为单机模式。

 双击 startup.cmd 等待启动成功

 Nacos 相关配置

创建配置 yaml

server:
  port: 9010


userName: Admin  

 

整合 Nacos 代码

 引入pom.xml依赖

需要根据用的 Spring Boot 配对应的 Nacos 版本

方式一:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

     <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>

方式二:

说明:在使用不同 Spring Boot 版本的项目中需要服务注册到外部系统的 Nacos 时,有可能出现 Nacos 版本不兼容, 可尝试方式二对config、discovery中 Nacos 进行exclusions再重新引用。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

    <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.1.3.RELEASE</version> <exclusions> <exclusion> <groupId>com.alibaba.cloud</groupId> <artifactId>nacos-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.3.RELEASE</version> <exclusions> <exclusion> <groupId>com.alibaba.cloud</groupId> <artifactId>nacos-client</artifactId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client --> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.0.0</version> </dependency>
配置 bootstrap.yml
# bootstrap配置文件优先于application配置加载
# 在bootstrap配置文件里设置配置中心,启动时从配置中心拉取对应的application配置文件完成服务启动
# 同时在bootstrap配置文件里设置服务注册中心,实现启动时的服务注册

# spring配置
spring:
main:
# 由于swagger配置类使用了继承,spring必须配置allow-bean-definition-overriding为true
allow-bean-definition-overriding: true
application:
# 服务名
name: your-application-name
cloud:
nacos:
# 配置中心
config:
# 关闭服务配置
enabled: true
# 设置配置文件所属命令空间
namespace: ${NACOS_WORKSPACE:1fa654fd-4927-4dd2-ad62-aa34dcb8b76d}
# 设置配置文件名称 dataId = ${prefix}-${spring.profile.active}.${file-extension}
# 当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId = ${prefix}.${file-extension}
prefix: your-application-name
file-extension: yaml
# 设置配置文件所属组
# group: sa
# 配置中心地址
server-addr: ${NACOS_ADDR:127.0.0.1:8848}
username: ${NACOS_NAME:nacos}
password: ${NACOS_PSW:nacos}
group: ${NACOS_GROUP:DEFAULT_GROUP}
import-check: false
# 服务注册
discovery:
# 关闭服务注册
enabled: true
register-enabled: true
# 服务注册命令空间
namespace: ${NACOS_WORKSPACE:1fa654fd-4927-4dd2-ad62-aa34dcb8b76d}
# # 设置配置文件所属组
# group: sa
# 服务注册地址
server-addr: ${NACOS_ADDR:127.0.0.1:8848}
username: ${NACOS_NAME:nacos}
password: ${NACOS_PSW:nacos}
group: ${NACOS_GROUP:DEFAULT_GROUP}
配置 application.yml
server:
  port: 9910

 开启注册发现 DemoApplication

@EnableDiscoveryClient //开启服务发现客户端 也就是nacos Server的客户端
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

TestController 

@RestController
public class TestController {

    @Value("${userName}")
    private String userName;

    @GetMapping("/hello")
    public String hello() {
        return "Hello " + userName;
    }

}

测试结果

 

至此,服务注册和服务发现已经完成了。注意,只能发现在同一个命名空间下和同一个组别下面才可以发现。

 

标签:SpringBoot,spring,nacos,Nacos,NACOS,整合,alibaba,cloud
From: https://www.cnblogs.com/bJydsJ/p/18545066

相关文章

  • 基于Java+SpringBoot的学生网上选课系统
    关注底部领取源码源码编号:S319源码名称:基于SpringBoot的学生网上选课系统用户类型:多角色,学生、教师、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:11张表是否......
  • 基于Java+SpringBoot的旅游管理系统
    关注底部领取源码源码编号:S320源码名称:基于SpringBoot的旅游管理系统用户类型:双角色,用户、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:15张表是否有毕业论文......
  • 基于Java+SpringBoot的大学生心理健康管理系统
    关注底部领取源码源码编号:S314源码名称:基于SpringBoot的大学生心理健康管理系统用户类型:双角色,学生、心理教师、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:16......
  • 智能驱动下的客户运营与知识管理整合策略
    在数字化转型的浪潮中,智能技术的应用正深刻改变着企业的运营模式和客户服务方式。智能驱动下的客户运营与知识管理整合策略,旨在通过智能化手段,优化客户体验,提升运营效率,同时实现知识的有效管理和利用。本文将深入探讨这一策略的核心价值、实施路径及实践案例,为企业提供参考。一......
  • 【AI换脸整合包及教程】Rope:AI 换脸工具的功能、原理、应用
    在人工智能技术迅猛发展的当下,AI换脸技术无疑是近年来备受瞩目的焦点之一。其中,Rope作为一款开源的AI换脸工具,因其出色的易用性和强大的功能而广受青睐。本文将对Rope的功能、技术原理、应用场景以及所面临的法律和伦理问题进行详细阐述。一、Rope的主要功能Rope是......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现八
    一、前言介绍:免费获取:猿来入此1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......
  • 基于springboot的教室预约与管理系统
    收藏关注不迷路!!......
  • 基于SpringBoot健康管理小程序的设计与实现
    博主主页:一点源码博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计,SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Python、Nodejs、小程序、安卓app、大数据等设计与开发......
  • 基于springboot月子护理中心管理系统设计与实现
    开发说明abo开发说明开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏览器后台路径地址:localhost:8080/项目名称/admin/dist/index.html前......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现七
    一、前言介绍:免费获取:猿来入此1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......