SpringCloud H系列 alibaba 2.1.1 (三) nacos1.X 配置中心 客户端 (配置动态刷新 命名空间配置 多环境配置)

1.nacos安装

请参考 : docker 安装 nacos 1.X

2.项目父工程

请参考 : SpringCloud H系列 alibaba 2.1.1 (一) nacos1.X 注册中心 服务端

3.项目结构

4.创建配置中心客户端子工程

pom.xml  工程文件

    <parent>
        <groupId>com.alibaba</groupId>
        <artifactId>spring-cloud-hoxton</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>alibaba-nacos-config-client</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

在nacos web管理端创建 application-nacos.yml 配置文件

指定端口号为 8000

bootstrap.yml  是优先级比 application.yml 高一档的配置文件 springboot 会优先读取

spring:
  application:
    # 应用名称
    name: alibaba-nacos-config-client
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: 192.168.1.141:8848
        # 文件后缀
        file-extension: yml
        # 文件前缀
        prefix: application-nacos

TestApplication.java  启动类

@SpringBootApplication
public class TestApplication {

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

}

TestController.java  测试接口 读取nacos中的配置文件中的端口号并返回

@Slf4j
@RestController
@RefreshScope // nacos 配置自动刷新
public class TestController {
    // 从 nacos 获取端口号
    @Value("${server.port:}")
    private String port;

    @GetMapping("/test")
    public String test() {
        return "端口:"+port;
    }

}

启动应用查看端口是否为nacos 中所配置的8000

访问测试接口读取配置文件中的端口

简单配置成功 

这时更改 nacos 配置文件中的 端口为 9000

查看文件是否会动态刷新

刷新测试接口查看内容是否改变

动态刷新成功(虽然配置文件改成了9000,但项目启动时已经指定为8000,所以需要重启应用,方可生效)

5.命名空间 与 多环境配置

创建新命名空间 dev 记住命名空间ID

在 dev 空间下 创建 application-nacos-dev.yml  开发环境配置文件  与  application-nacos-prod.yml  正式环境配置文件

 application-nacos-dev.yml 配置端口为 8002

 application-nacos-prod.yml 配置端口为 8012 

修改 bootstrap.yml 配置 增加 多环境指定 与 命名空间ID

spring:
  application:
    # 应用名称
    name: alibaba-nacos-config-client
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: 192.168.1.141:8848
        # 文件后缀
        file-extension: yml
        # 文件前缀
        prefix: application-nacos
        # 命名空间ID
        namespace: 21c7d9a6-4b92-4313-b28b-7ba5a9328902
  profiles:
    # 环境指定为dev
    active: dev
    # 环境指定为prod
#    active: prod

 指定 环境为dev 启动应用查看 端口是否为 8002

 指定 环境为prod 启动应用查看 端口是否为 8012

项目已上传到gitee

地址: spring-cloud-alibaba-H-demo

如果帮到您了,请帮忙点个star

 

猜你喜欢

转载自blog.csdn.net/weixin_40461281/article/details/103494258