关于SpringBoot2.7.6连接nacos遇到的一些问题

 更新时间:2024年06月03日 16:25:47   作者:一牧.log  
这篇文章主要介绍了关于SpringBoot2.7.6连接nacos遇到的一些问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

SpringBoot2.7.6连接nacos的问题

简述:

我遇到的问题是版本不匹配的问题,经搜索查询得出如下结论,最终完成了对nacos的连接。

需要注意的是,我是用springboot子模块进行了nacos连接,其中继承了父工程,关键配置是要对nacos进行修改。

版本选择   

    <!-- 继承Spring boot工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.6</version>
    </parent>
 
    <!-- 此处选择的mysql版本为如下,依赖自己导入 -->
    <mysql.version>8.0.12</mysql.version>
 
    <!--SpringBoot2.4.x之后默认不加载bootstrap.yml文件,需要在pom里加上依赖-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    <!--nacos注册和配置中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.2.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>

yml配置

spring:
  application:
    name: colleges-user
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.22.135:8848
        enabled: true
      config:
        server-addr: 192.168.22.135:8848
        file-extension: yaml
        # 因为springboot 2.4版本以后默认关闭加载bootstrap.yml,所以只能通过此方式连接到nacos config
        import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}
        enabled: true

springboot对nacos的使用

一、启动nacos:

① 使用docker安装nacos:

docker pull nacos/nacos-server:2.0.3

② 启动容器(配置8848端口为nacos端口):

docker run --name mynacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:2.0.3

③ 查看是否启动成功:

docker ps

以下代表启动成功:

④启动nacos:

docker exec -it 76c9be91653a /bin/bash#其中76c9be91653a 为nacos的containerID

没有关闭防火墙的可以选择性关闭防火墙:

systemctl stop firewalld

启动成功后,就可以在浏览器访问nacos了:

地址: [服务器ip]:8848/nacos

账号和密码都是nacos

二、配置固定的配置值

① 首先在空间组新建命名空间:

命名空间ID自动生成,复制下来之后yml配置文件中会用到

② 在配置管理的配置列表里面添加配置:

其中,配置内容就是你想要配置的固定值,建议将固定的、不容易被更改的配置放到nacos里;

比如将过期时间设置为1000

三、springboot集成nacos

① 导入jar包:

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

其中,nacos的版本需要和springboot版本对应,我用的是:

<spring-boot.version>2.3.12.RELEASE</spring-boot.version>

② 新建一个bootstrap.yml配置文件,识别到nacos相关配置:

spring:
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        namespace: 6024d9fd-2b64-4660-b89b-2932f505527d  #我们在nacos中创建的空间名称
        group: dev   #nacos配置文件所选择的group
        server-addr: (服务器ip):8848  #nacos服务地址
      config:
        namespace: 6024d9fd-2b64-4660-b89b-2932f505527d   #我们在nacos中创建的空间名称
        timeout: 3000
        auto-refresh: true  #修改后自动加载
        group: dev   #nacos配置文件所选择的group
        file-extension: yaml  #读取nacos配置文件后缀
        enable-remote-sync-config: true
        refresh-enabled: true
        server-addr: (服务器ip):8848  #nacos服务地址

③启动类上加上 @EnableDiscoveryClient 注解

使用时: 直接将已经在nacos里配置好的值添加到value注解里即可,像这样:

@Value("${key}")
private Integer key;

这样就可以直接获取到111了。

注意需要在使用到这个key的nacos的类上面加上 @RefreshScope 这个注解,如果在nacos配置中刷新了key的值,就可以不用重新启动springboot也能获取到。

总结

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

相关文章

  • Spring WebMVC初始化Controller流程详解

    Spring WebMVC初始化Controller流程详解

    这篇文章主要介绍了Spring WebMVC初始化Controller流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • mybatis引用其他文件中的sql片段的实现

    mybatis引用其他文件中的sql片段的实现

    Mybatis中也是支持引用其他Mapper文件中的SQL片段的,本文就来介绍一下如何使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • springboot中Excel文件下载踩坑大全

    springboot中Excel文件下载踩坑大全

    本文主要介绍了springboot中Excel文件下载,但是却容易遇到很多坑,文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java常用数据流应用实例解析

    java常用数据流应用实例解析

    这篇文章主要介绍了java常用数据流应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringSecurity 跨域资源共享(CORS)的实现

    SpringSecurity 跨域资源共享(CORS)的实现

    本文主要介绍了SpringSecurity 跨域资源共享,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • Maven的依赖管理、传递、冲突、父子工程的继承和聚合方式

    Maven的依赖管理、传递、冲突、父子工程的继承和聚合方式

    这篇文章主要介绍了Maven的依赖管理、传递、冲突、父子工程的继承和聚合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)

    Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)

    Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害,下面小编给大家带来了Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载,感兴趣的朋友一起看看吧
    2021-12-12
  • Spring AOP注解实战指南

    Spring AOP注解实战指南

    在现代软件开发中,面向切面编程(AOP)是一种强大的编程范式,本文将介绍如何在Spring框架中通过AspectJ注解以及对应的XML配置来实现AOP,在不改变主业务逻辑的情况下增强应用程序的功能,需要的朋友可以参考下
    2024-06-06
  • Java 前台加后台精品图书管理系统的实现

    Java 前台加后台精品图书管理系统的实现

    相信每一个学生学编程的时候,应该都会写一个小项目——图书管理系统。为什么这么说呢?我认为一个学校的氛围很大一部分可以从图书馆的氛围看出来,而图书管理系统这个不大不小的项目,接触的多,也比较熟悉,不会有陌生感,能够练手,又有些难度,所以我的小项目也来了
    2021-11-11
  • Spring Boot 中密码加密的两种方法

    Spring Boot 中密码加密的两种方法

    这篇文章主要介绍了Spring Boot 中密码加密的两种方法,帮助大家更好的理解和使用Spring Boot框架,感兴趣的朋友可以了解下
    2020-09-09

最新评论