教程原稿 https://gitee.com/fakerlove/joker-nacos
2. 讲解
2.1 入门流程
发布配置

添加依赖
版本的话,和nacos 页面版本,尽量一致。现在版本在2.0
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>kaoyan-cloud</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
</project>
main 函数
package com.ak;
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 class demo1 {
public static void main(String[] args) throws NacosException {
// 使用nacos 来获取配置
String serverAddr="47.100.104.187:8848";
String dataID="nacos-simple-demo1.yml";
String group="DEFAULT_GROUP";
Properties properties =new Properties();
properties.put("serverAddr",serverAddr);
ConfigService service=NacosFactory.createConfigService(properties);
String config=service.getConfig(dataID,group,5000);
System.out.println(config);
}
}
远程获取结果

2.2 配置管理
1) 命名空间

新建命名空间

在不同的命名空间下,建立不同的yml

然后开始运行
package com.ak;
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 class demo2 {
public static void main(String[] args) throws NacosException {
// 使用nacos 来获取配置
String serverAddr="47.100.104.187:8848";
String dataID="nacos-simple-demo1.yml";
String group="DEFAULT_GROUP";
String nameSpace="cf6270d3-a5d2-46ac-a36a-051ef8fd0151";
Properties properties =new Properties();
properties.put("serverAddr",serverAddr);
properties.put("namespace",nameSpace);
ConfigService service=NacosFactory.createConfigService(properties);
String config=service.getConfig(dataID,group,5000);
System.out.println(config);
}
}
结果

2) 监听
package com.ak;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import java.util.Properties;
import java.util.concurrent.Executor;
public class demo2 {
public static void main(String[] args) throws NacosException {
// 使用nacos 来获取配置
String serverAddr="47.100.104.187:8848";
String dataID="nacos-simple-demo1.yml";
String group="DEFAULT_GROUP";
String nameSpace="cf6270d3-a5d2-46ac-a36a-051ef8fd0151";
Properties properties =new Properties();
properties.put("serverAddr",serverAddr);
properties.put("namespace",nameSpace);
ConfigService service=NacosFactory.createConfigService(properties);
String config=service.getConfig(dataID,group,5000);
System.out.println(config);
// 添加了监听,当配置信息内容发生改变了,就会发生改变
service.addListener(dataID, group, new Listener() {
@Override
public Executor getExecutor() {
return null;
}
@Override
public void receiveConfigInfo(String s) {
System.out.println(s);
}
});
while (true){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
结果

3) 登录管理
生成code
package com.ak;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
*使用验证码
*/
public class demo3 {
public static void main(String[] args) {
String password=new BCryptPasswordEncoder().encode("123");
System.out.println(password);
}
}

修改数据库user 和admin
use nacos_config;
insert into users(username,password,enabled) values("joker","$2a$10$7hViVnEt5Z8k6KfvTcZvR.kSQvNKuTaH/3H.9EKlQLZ7IIlFJw5Ia",TRUE);
insert into roles(username,role) values("joker","ROLE_ADMIN");
退出,使用joker,密码123 登录

1354





