参考于:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html

Maven依赖

虽然导boot-starter但是不用boot接入

        <!-- SpringBoot 整合Nacos-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.10</version>
        </dependency>

Demo 1:测试一下能够读取到Nacos上的配置文件

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;


    public static void main(String[] args) throws NacosException {
        // DataID
        String dataId = "Mytest01";
        // Group
        String group = "com.xunliao";
        // Nacos 地址
        String addr = "127.0.0.1:8848";
        
        // 构造获取配置对象方法需要的参数
        Properties properties = new Properties();
        properties.setProperty("serverAddr",addr);
        
        // 获取配置对象
        ConfigService configService = NacosFactory.createConfigService(properties);
        
        // 拿出配置文件数据 第三个参数是超时时间
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
    }

Nacos 配置管理模型

Namespace :命名空间

Group :配置组。 一般就是父模块名即可。

Data ID :配置集。就是 spring.application.name

可以上述三个元素决定一个配置集

什么是配置集 Data ID 呢?

一个配置文件就是一个配置集,建议设定为模块名! 配置中对应:spring.application.name

什么是配置项呢?

配置集的每一个配置内容就是配置项

什么是配置组 Group?

配置集分组,通常用来定义为 父项目的名称

什么是命名空间 Namespace? 默认命令空间是 public

用于不同环境之间的隔离。通常用来分为 开发环境、测试环境、生产环境!

Demo 2 指定”命名空间“获取配置文件

 public static void main(String[] args) throws NacosException {
        // DataID
        String dataId = "Mytest01";
        // Group
        String group = "com.xunliao";
        // Nacos 地址
        String addr = "127.0.0.1:8848";
        // Namespace
        String namespaseid = "e60c3bd8-1350-419a-b572-fe687e77dfd0";

        // 构造获取配置对象方法需要的参数
        Properties properties = new Properties();
        properties.setProperty("serverAddr",addr);
        properties.setProperty("namespace",namespaseid);

        // 获取配置对象
        ConfigService configService = NacosFactory.createConfigService(properties);

        // 拿出配置文件数据 第三个参数是超时时间
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
    }

结论:对比Demo1、Demo2 就可以得出 不指定命名空间,默认是 public 默认空间

配置文件额外操作

导出(选中一个Data组)

导入(向任何的命名空间导入之前导出的文件)

克隆(等价于导出、导入的操作)

历史版本(误操作,可以快速恢复,我个人建议尽量不要操作回滚,以免误操作)、

监听查询(可以查看当前的服务端)

Demo3 监控Nacos配置文件变更

    public static void main(String[] args) throws NacosException {
        // DataID
        String dataId = "Mytest01";
        // Group
        String group = "com.xunliao";
        // Nacos 地址
        String addr = "127.0.0.1:8848";
        // Namespace
        String namespaseid = "e60c3bd8-1350-419a-b572-fe687e77dfd0";

        // 构造获取配置对象方法需要的参数
        Properties properties = new Properties();
        properties.setProperty("serverAddr",addr);
        properties.setProperty("namespace",namespaseid);

        // 获取配置对象
        ConfigService configService = NacosFactory.createConfigService(properties);

        // 拿出配置文件数据 第三个参数是超时时间
        String config = configService.getConfig(dataId, group, 5000);
        // 输出当前获取到的配置文件
        System.out.println(config);

        configService.addListener(dataId, group, new Listener() {
            @Override
            public Executor getExecutor() {
                return null;
            }

            // 当配置有变化的实话,执行此方法
            @Override
            public void receiveConfigInfo(String s) {
                System.out.println("配置文件已变更!变更后的结果是:");
                System.out.println(s);
            }
        });

        // 不让Main方法 主线程停止,进而保证Listener线程 终止导致Listener无法监控数据变化
        while (true){
            try {
                Thread.sleep(8000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

修改Nacos密码、创建用户

Nacos 密码我们之前保存到数据库中,我们进入数据库,更替密码即可。算法是 BCrypt 目前没有在线生成的方式,所以我们有2种方式实现修改Nacos密码。

1、去Nacos控制台网页修改密码 推荐,修改完本账号会里面T下去自己。

2、去使用算法 生成密码,然后更新nacos_config库中users密码,不过不能直接踢下去老帐号。

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>5.5.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>


    @Test
    public void getBCryiptPassword(){
        String password = new BCryptPasswordEncoder().encode("新密码");
        System.out.println(password);
    }

创建自己的用户,建议去Nacos控制台网页创建用户。

关闭登录验证 ,人人接可登录

暂时没实现,当前版本较为复杂,好像新版本受到了限制!
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤