【Nacos系列教程】Nacos第二篇:配置中心演示一

  • 作者: 凯哥Java(公众号:凯哥Java)
  • Nacos
  • 时间:2022-03-27 16:12
  • 4440人已阅读
简介 Nacos系列教程之配置中心演示

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

在上一篇,我们讲解了,怎么在Windows系统中启动一个nacos。我们就使用这个nacos来作为配置中心

一:新增一个配置

步骤:配置列表->点击“+号”新增->

09653a59145c07410b971b3022838745.png

我们可以看到,在创建的时候,设置dataId\Group等,还要选择配置格式。

在配置格式中,我们可以看到很多我们熟悉的类型。这里我们就选择YAML类型的

演示数据:

dtatId:domain

group:DEFAULT_GROUP

配置格式:YAML

如下图:

8a266fb5917fca24344f936bb6e36496.png

这样,我们就配置好了。

二:spring boot继承Nacos

2.1:创建maven项目省略

2.2:maven添加:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <!-- spring boot启动类的-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
    </dependency>
    <!-- 解决没有激活profile的-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- nacos-config -->
    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>nacos-config-spring-boot-starter</artifactId>
        <version>0.2.7</version>
    </dependency>
</dependencies>

2.3:配置文件添加nacos相关配置:

server.port=8011
spring.application.name=/springboot-nacos
server.servlet.session.timeout= 10
#server.session.timeout=10
server.tomcat.uri-encoding=UTF-8

# nacos
nacos.config.server-addr=127.0.0.1:8848

主要是nacos.config.server-addr地址

2.4:在启动类添加nacos的支持及添加对nacos监听加载方法

@NacosPropertySource(dataId = "domain", autoRefreshed = true, type = ConfigType.YAML)

说明:其中的dtatId就是刚才咱们配置的。设置自动刷新为true.设置文件类型为YAML

nacos监听方法:

/**
 * 监听Nacos加载
 *
 * @param config
 */
@NacosConfigListener(dataId = "domain", type = ConfigType.YAML)
public void onMessage(String config) {
    System.out.println(config);
}

完整如下图:

232719b54915e0ad32c11704c95bb14f.png

扩展:

dataId也可以配置在配置文件中。如下:

nacos:
  config:
    server-addr: localhost:8848    data-id: IAM

2.5:编写测试类:

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;

/**
 * @author kaigejava
 */
@Controller
@RequestMapping("config")
public class NacosConfigController {

    private boolean useLocalCache;
    @NacosValue(value = "${domain-url}", autoRefreshed = true)
    private String serverName;

    @NacosValue(value = "${useLocalCache}", autoRefreshed = true)
    public void setUseLocalCache(boolean useLocalCache) {
        this.useLocalCache = useLocalCache;
    }

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

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

0c7b17f8494d1cdd92a06824b3735909.png

测试方法写完之后,启动项目进行访问:

5665d8d3d83ef27c46326b144112bdc8.png

我们可以看到,已经读取到配置文件里面的信息了。

需要注意:

使用的是

@NacosValue(value = "${domain-url}", autoRefreshed = true)


示例代码已提交:https://gitee.com/kaigejava/kaigejavastudy

TopTop