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

我是一个大数据工程师,但是被迫营业做后端,现在接手了一个项目,干!有个东西叫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博客

猜你喜欢

转载自blog.csdn.net/qq_38403590/article/details/130933276