nacos入门-纯springboot整合nacos(百分之百可以-参考官网,比官网还全)

news2024/11/22 9:54:31

我是一个大数据工程师,但是被迫营业做后端,现在接手了一个项目,干!有个东西叫Nacos。没接触过,那不行,会被优化的。我一大数据工程师搞gr的springcloud,网上很多说整合整合springboot的,我拿来一用,全是骗人屁,导入了一个springCloud然后说springBoot整合nacos,我服了,搞得我springboot导入依赖根本起不起来,满篇红叉叉报错,于是为了提升国内博客的数量,摈弃那种虚假文章,正国内博客之风,提高真实性,出了这篇文章。

然后我去官网看了,官网写的也不全,尤其是那个快速入门springboot-nacos你跟着那个来,肯定起不来,最后去看了他的官方git代码示例,才发现不一样。然后还有版本问题,springBoot对应nacos哪个版本他也没有写,总之就是这些问题,还有那个nacos博客里面全是各种广告,和技术相关的几乎没有,然后我网上搜索了半天,再加上实践,最终写出了这篇比官方还要全的springBoot-nacos文章。

nacos是一个注册中心。什么是注册中心,就是把其他的服务全部交给一个服务去管理,这个管理其他服务的中心就叫注册中心,他有啥功能呢?就是原来的配置在application里面的,全部从网上(nacos)配置,然后动态更新

服务端后端的同学搭建好了,现在咱们只用在代码里连客户端就行,

创建一个springBoot-web的项目,然后导入依赖,nacos官方示例所需要的依赖以及对应的版本,请看我标红的部分。

上代码,nacos先导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>codeTest1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>codeTest1</name>
    <description>codeTest1</description>
    <properties>
        <java.version>1.8</java.version>
        <nacos-config-spring-boot.version>0.2.1</nacos-config-spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>



        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>${nacos-config-spring-boot.version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-actuator</artifactId>
            <version>${nacos-config-spring-boot.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


然后咱们默认的springBoot的配置叫做application.properties中配置nacos地址

不要加http,直接写ip和端口号就行

nacos.config.server-addr=192.168.9.31:8848

在springApplication启动类中,加入注解,选择要指向的Data Id,开启自动更新

@SpringBootApplication
@NacosPropertySource(dataId = "zhibo-test", autoRefreshed = true)
public class CodeTestApplication {

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

}

主要加入了这个@NacosPropertySource(dataId = "zhibo-test", autoRefreshed = true)

 这个是Data Id的位置(我先不创建,我后面创建)

代码,写一个controller测试

package com.example.codetest1.controller;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import static org.springframework.web.bind.annotation.RequestMethod.GET;

@Controller
@RequestMapping
public class TestNacos {
    @NacosValue(value = "${test:0}", autoRefreshed = true)
    private String data;

    @RequestMapping(value = "/get", method = GET)
    @ResponseBody
    public String get() {
        return data;
    }
}

 @NacosValue(value = "${test:0}", autoRefreshed = true)

表示从nacos中获取test的值,0代表他的默认值,当我没有在nacos创建zhibo-test的时候,通过请求返回是0

 我在nacos【服务端】新建的Data Id是test_zhibo的里面,改一下,加1个,test=123

 

然后再次请求,如果修改为123了,说明nacos动态更新了springBoot的程序。

我在整个过程中都没有重启springBoot服务

成功!

 

参考:

---建议大家多看【官网代码示例】

Springboot启动时报错:Root bean: class [null]_root bean: class [null]; scope=; abstract=false; l-CSDN博客

https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.2-%E4%BB%A5%E5%8F%8A-0.1.2%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C

https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter/0.2.7

Nacos Spring Boot 快速开始

Nacos简介_shenlbang的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python+Django生活用品商城网站前后端

程序示例精选 PythonDjango生活用品商城网站前后端 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonDjango生活用品商城网站前后端 >>编写代码&#xff0c;代码整洁&am…

Java多线程wait notify和park unpark的使用

目录 一、wait & notify的使用1、API介绍2、demo2、多线程模式3、wait和notify的原理 二、Park & Unpark的使用1、基本使用2、特点3、park和unpark的原理 一、wait & notify的使用 1、API介绍 obj.wait() 让进入 object 监视器的线程到 waitSet 等待 obj.wait(n)…

508教室使用方法

一、教室平面图 508教室的布局如下&#xff0c;重要的设备已经在图中标出。总开关、一体机和机柜。   二、使用方法 2.1 房间机器上电 进门后首先走到“总开关位置”&#xff0c;将电匝闭合。 原来的开关如图所示&#xff0c;有3组开关&#xff0c;1号组开关用于控制插座、…

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型

AGI时代的到来&#xff0c;市场风云变幻&#xff0c;世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时&#xff0c;数说故事正式对外发布数说故事“SocialGPT”&#xff0c;国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…

chatgpt赋能python:Python如何保存为py文件

Python如何保存为py文件 如果你是一个Python初学者或者在使用Python进行编程&#xff0c;你可能会想知道如何将Python代码保存为.py文件。本文将向您介绍Python如何保存为py文件&#xff0c;这样你就可以像其他编程语言一样&#xff0c;通过编辑器来直接修改和运行代码了。 保…

spring实例化bean之实例化

1.关键方法createBean doGetBean中调用getSingleton方法中调用singletonFactory.getObject()触发lambda表达式中的createBean方法 AbstractAutowireCapableBeanFactory#createBean protected Object createBean(String beanName, RootBeanDefinition mbd, Nullable Object[] …

安装和使用MySQL

文章目录 零、学习目标一、获取MySQL安装程序二、安装MySQL数据库管理系统三、启动并使用MySQL命令行&#xff08;一&#xff09;启动MySQL命令行&#xff08;二&#xff09;在MySQL命令行里操作数据库1、显示数据库2、使用数据库3、查看数据库里的表4、查看表的记录 零、学习目…

还在用InputStream的available()方法获取流的字节数吗?那你可要小心了!

问题说明 因为项目需求&#xff0c;需要从一个url获取文件流然后保存到minio文件服务器中。 先看看下面的代码片段 MinioClient minioClient MinioClient.builder().endpoint(new URL("http://ip:port")).credentials("username", "password"…

关于npm install md5报错the command again as root/Administrator的解决办法

nodejs安装依赖报错 (venv) PS D:\pythonProject> npm install md5 npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! requiredBy: . npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! Its possible that the file was…

QQ群内增加ChatGPT机器人

0. 起因 最近弄了一个QQ群&#xff0c;人在逐渐增多&#xff0c;问问题的人也越来越多&#xff0c;有些问题是编程基础问题&#xff0c;2023年了&#xff0c;这些问题都不应该由人类来解决了&#xff0c;交给AI吧。所以&#xff0c;想在QQ群里加个ChatGPT机器人&#xff0c;应…

simplify3d 打印参数设置笔记

专业实用且详细的打印教程 3D打印故障排除&#xff1a;所有问题和解决方案 simplify3d 切片软件使用 初始设置 材料&#xff1a;PLA 喷头温度 215 热床温度 60 导入的模型格式 stl 保存的模型名称可以是中文 但是名称中不允许有空格&#xff0c;否则我这个打印机加热好喷头和…

GORM---初级查询

文章目录 初始数据表一般查询Where条件普通SQL查询查询 Struct & Map Not 条件Or 条件内联条件额外查询选项FirstOrInitAttrsAssign FirstOrCreateAttrsAssign 初始数据表 一般查询 var p1, p2, p3, p4 connect.PersonInfo var ps []connect.PersonInfo// 把主键升序&…

2023年陕西彬州第八届半程马拉松赛153pb完赛

1、赛事背景 2023年6月3日&#xff0c;我参加了2023陕西彬州第八届半程马拉松赛&#xff0c;最终153完赛&#xff0c;PB了5分钟。起跑时间早上7点30分&#xff0c;毕竟6月天气也开始热了。天气预报显示当天还是小到中雨&#xff0c;上次铜川宜君半马也是雨天跑的&#xff0c;阴…

为何选择C语言作为大一编程入门?

C语言&#xff0c;编程之本&#xff0c;源于生命。作为一门最接近底层的高级语言&#xff0c;学习C语言有以下重要原因&#xff1a; 探索底层&#xff1a;C语言为我们提供了理解计算机底层工作原理的机会。通过学习C语言&#xff0c;我们能更容易理解内存管理、指针操作等底层知…

前后端分离项目SpringBoot-Shiro-jwt处理401响应码的方案

问题现象&#xff1a; 现在大多数项目已经实现前后端分离&#xff0c;当采用shiro作为安全框架时&#xff0c;如果请求的token已过期或未认证请求&#xff0c;会得到401的HTTP STATUS。此时在前端还会因为401的错误弹出一个登录认证的弹框。效果如下&#xff1a; 经分析&#…

DataLeap的全链路智能监控报警实践(一):常见问题

随着字节跳动业务的快速发展&#xff0c;大数据开发场景下需要运维管理的任务越来越多&#xff0c;然而普通的监控系统只支持配置相应任务的监控规则&#xff0c;已经不能完全满足当前需求&#xff0c;在日常运维中开发者经常会面临以下几个问题&#xff1a; 任务多&#xff0c…

凝聚全球顶尖力量,助力开源行业发展 | 2023开放原子全球开源峰会开幕式暨高峰论坛亮点抢先看!

亮点攻略 一触即发 6月11-13日&#xff5c;中国北京 作为开源领域一年一度的盛事&#xff0c;由2023全球数字经济大会组委会主办&#xff0c;开放原子开源基金会、北京市经济和信息化局、北京经济技术开发区管理委员会承办的2023开放原子全球开源峰会将于6月11日至13日在北京…

实现Mac使用空格键预览更多文件格式

mac上的快速预览非常好用&#xff0c;但是对于许多格式的不支持造成了体验感的割裂。例如对于使用频繁的.md、.js、.py等格式的文件&#xff0c;无法生成缩略图。可以通过在「Quick Look」中 安装插件的方式来实现预览格式的扩展。 1. 插件的安装 下载的插件一般有两种格式&am…

SpringBoot的高考志愿填报系统(含源码+数据库)

系统获取方式&#xff1a; 1.系统分析 在本系统中&#xff0c;基于SpringBoot的高考志愿填报系统需要满足以下功能需求&#xff1a; 1.用户可以根据自己的院校类型、办学类型、层次类型、地域等因素筛选高校。 2.用户可以查询到所选高校的基本信息&#xff0c;包括学校的概况…

vcsa6.7更换证书

今天一早&#xff0c;有现场反馈&#xff0c;vcenter无法登录&#xff0c;估计到可能是证书到期了 在浏览器中确认下&#xff0c;确实是证书到期的问题 通过查看你sts不过期&#xff0c;直接更新全部证书 To escape to local shell, press CtrlAlt]. VMware vCenter Server Ap…