nacos使用说明文档--fager

场景一:单个yaml测试
某应用只导入单个配置文件,设置如下键确定配置文件:

#配置文件名
spring.application.name
#配置文件扩展名
spring.cloud.nacos.config.file-extension
#配置文件所在的组名
spring.cloud.nacos.config.group

#此处主要是测试是否能读取yaml格式的配置文件

一、添加依赖
1.Nacos配置中心依赖文件:

<dependency>
    <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

2.引入该 spring-cloud-context.jar 使 bootstrap.properties 配置文件即可生效!

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-context</artifactId>
    <version>2.1.2.RELEASE</version>
</dependency>

二、bootstrap.properties配置文件使用
1.只导入nacos服务器上的单个配置文件rs.yaml,组别为RS_EXAMPLE

#nacos服务ip+port
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

#此程序要导入nacos上的配置文件名,默认扩展名是properties
spring.application.name=rs
#指定配置文件的扩展名,不指定的话默认properties
spring.cloud.nacos.config.file-extension=yaml
#指定配置文件的group,不指定的话默认DEFAULT_GROUP
spring.cloud.nacos.config.group=RS_EXAMPLE

三、nacos控制台添加配置文件
1.上浏览器访问nacos控制台界面,地址http://127.0.0.1:8848/nacos
【解释】该地址为部署nacos服务的地址
2.按下图所示内容添加rs.yaml文件
在这里插入图片描述

四、新建java类
1.创建如下标准spring boot启动类
2.读取nacos控制台已填写好的配置文件rs.yaml上的内容,user和id

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("user");
        String userAge = applicationContext.getEnvironment().getProperty("id");
        System.err.println("user name :"+userName+"; age: "+userAge);
    }

}

五、启动程序
1.启动程序,观察控制台输出

在这里插入图片描述

场景二:单个properties测试
某应用只导入单个配置文件,设置如下键确定配置文件:

#配置文件名
spring.application.name
#配置文件扩展名
spring.cloud.nacos.config.file-extension
#配置文件所在的组名
spring.cloud.nacos.config.group

#此处主要是测试是否能读取properties格式的配置文件
一、添加依赖
1.Nacos配置中心依赖文件:

<dependency>
    <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

2.引入该 spring-cloud-context.jar 使 bootstrap.properties 配置文件即可生效!

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-context</artifactId>
    <version>2.1.2.RELEASE</version>
</dependency>

二、bootstrap.properties配置文件使用
1.只导入nacos服务器上的单个配置文件cbb-redis.properties,组别为CBB_EXAMPLE

#nacos服务ip+port
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

#此程序要导入nacos上的配置文件名,默认扩展名是properties
spring.application.name=cbb-redis
#指定配置文件的扩展名,不指定的话默认properties
spring.cloud.nacos.config.file-extension=properties
#指定配置文件的group,不指定的话默认DEFAULT_GROUP
spring.cloud.nacos.config.group=CBB_EXAMPLE

三、nacos控制台添加配置文件
1.上浏览器访问nacos控制台界面,地址http://127.0.0.1:8848/nacos
【解释】该地址为部署nacos服务的地址
2.按下图所示内容添加cbb-redis.properties文件
在这里插入图片描述

四、新建java类
1.创建如下标准spring boot启动类
2.读取nacos控制台已填写好的配置文件cbb-redis.properties上的内容,cbb和abc

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("cbb");
        String userAge = applicationContext.getEnvironment().getProperty("abc");
        System.err.println("user name :"+userName+"; age: "+userAge);
    }

}

五、启动程序
1.启动程序,观察控制台输出
在这里插入图片描述

场景三:正常使用场景
某应用需导入多个配置文件,设置如下键确定配置文件:

#配置文件名+扩展名
spring.cloud.nacos.config.ext-config[0].data-id
#配置文件所在组别
spring.cloud.nacos.config.ext-config[0].group
#该配置文件是否热部署
spring.cloud.nacos.config.ext-config[0].refresh

#此处主要测试是否能读取多个配置文件,并测试是否实现热部署(在不重启应用的情况下,更改配置文件,配置文件生效)

一、添加依赖

  1. Nacos配置中心依赖文件:
<dependency>
    <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

  1. 引入该 spring-cloud-context.jar 使 bootstrap.properties 配置文件即可生效!
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-context</artifactId>
    <version>2.1.2.RELEASE</version>
</dependency>

二、bootstrap.properties配置文件使用
1.导入多个配置文件

#多个配置文件
#nacos服务ip+port
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

#第一个配置文件
spring.cloud.nacos.config.ext-config[0].data-id=cbb-datasource.properties
spring.cloud.nacos.config.ext-config[0].group=CBB_EXAMPLE
spring.cloud.nacos.config.ext-config[0].refresh=true

#第二个配置文件
spring.cloud.nacos.config.ext-config[1].data-id=cbb-redis.properties
spring.cloud.nacos.config.ext-config[1].group=CBB_EXAMPLE
spring.cloud.nacos.config.ext-config[1].refresh=true

#第三个配置文件
spring.cloud.nacos.config.ext-config[2].data-id=rs.yaml
spring.cloud.nacos.config.ext-config[2].group=RS_EXAMPLE
spring.cloud.nacos.config.ext-config[2].refresh=true

三、nacos控制台添加配置文件
1.配置文件cbb-datasource.properties
在这里插入图片描述
2.配置文件cbb-redis.properties
在这里插入图片描述
3.配置文件rs.yaml
在这里插入图片描述

四、新建java类
1.创建如下标准spring boot启动类

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
    }

}

2.创建UserController类

package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserConfig userConfig;
    /**
     * http://localhost:8080/user/get
     */
    @GetMapping()
    public String get() {

        System.err.println("CBB_EXAMPLE 的 cbb-redis.properties 配置文件的 cbb="+userConfig.getCbb());
        System.err.println("CBB_EXAMPLE 的 cbb-datasource.properties 配置文件的 spring.datasource.url="+userConfig.getUrl());
        System.err.println("RS_EXAMPLE 的 rs.yaml 配置文件的 user="+userConfig.getUser());

        return "nacos is running ok!" ;
    }

}

@Configuration
class UserConfig{

    /**
     * CBB_EXAMPLE 的 cbb-datasource.properties 配置文件的 spring.datasource.url
     */
    @Value(value = "${spring.datasource.url}")
    private String url;

    /**
     * CBB_EXAMPLE 的 cbb-redis.properties 配置文件的 cbb
     */
    @Value("${cbb}")
    private String cbb;

    /**
     * RS_EXAMPLE 的 rs.yaml 配置文件的 user
     */
    @Value("${user}")
    private String user;

    public UserConfig(){
    }

    @Bean
    public UserConfig getUserConfig(){
        return new UserConfig();
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getCbb() {
        return cbb;
    }

    public void setCbb(String cbb) {
        this.cbb = cbb;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }
}

五、启动程序
1.启动程序
2.浏览器访问http://localhost:8080/user
在这里插入图片描述
3.观察控制台输出
在这里插入图片描述

六、热部署测试
1.上nacos控制台更改配置文件
在这里插入图片描述
2.访问浏览器http://localhost:8080/user
在这里插入图片描述
3.观察控制台输出
更改了配置后,监听到配置文件被修改,但限于此例在程序启动时就注入了一个已经初始化好的UserConfig的bean;若不重启应用的话,该bean的属性不改变。
在这里插入图片描述
场景四:热部署
场景三中未实现热部署;目前测试热部署需要重新搞一个pom.xml文件
一、pom.xml文件内容

<?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.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--实现热部署@EnableNacosConfig-->
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-spring-context</artifactId>
            <version>0.3.3</version>
        </dependency>

    </dependencies>

</project>

二、启动类添加注解
1.启动类上添加注解@EnableNacosConfig;使应用接入nacos服务
2.启动类上添加注解@NacosPropertySources;导入nacos上的配置文件,可设置autoRefreshed选择是否热部署

package com.example.demo;

import com.alibaba.nacos.api.annotation.NacosProperties;
import com.alibaba.nacos.spring.context.annotation.config.EnableNacosConfig;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySources;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySources(@NacosPropertySource(dataId = "cbb-datasource.properties", groupId = "CBB_EXAMPLE", autoRefreshed = true))
public class DemoApplication {

    public static void main(String[] args) {
       SpringApplication.run(DemoApplication.class, args);
    }

}

三、添加示例类
1.在需要读取配置文件的变量上添加注解@NacosValue;可设置autoRefreshed选择是否热部署;

package com.example.demo.controller;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user2")
public class UserController2 {

    @NacosValue(value = "${spring.datasource.url}",autoRefreshed = true)
    private String str;

    /**
     * http://localhost:8080/user/get
     */
    @GetMapping()
    public String get() {
        System.err.println(this.str);
        return "nacos is running ok!";
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }
}

四、启动程序
1.启动程序
2.浏览器访问http://localhost:8080/user2
在这里插入图片描述
3.观察控制台输出
在这里插入图片描述
4.更改nacos上的配置文件
在这里插入图片描述
5.浏览器再次访问http://localhost:8080/user2
6.观察控制台输出
在这里插入图片描述
7.热部署成功!在不重启应用的情况下,发现更改后的配置生效,输出了更改后的配置内容

发布了25 篇原创文章 · 获赞 4 · 访问量 6218

猜你喜欢

转载自blog.csdn.net/qq_41953807/article/details/102860789