参考于: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博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
评论(0)