• SpringBoot集成Nacos动态读取配置文件及服务发现


    一、集成Nacos

    1)配置pom文件

    1. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    4. <version>2.1.0.RELEASEversion>
    5. dependency>
    6. <dependency>
    7. <groupId>com.alibaba.cloudgroupId>
    8. <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    9. <version>2.1.0.RELEASEversion>
    10. dependency>
    11. <dependency>
    12. <groupId>org.springframework.bootgroupId>
    13. <artifactId>spring-boot-starter-webartifactId>
    14. dependency>

    2)修改配置文件

    nacos默认读取bootstrap.xml文件

    1. spring:
    2. application:
    3. name: test-server-tcp
    4. profiles:
    5. active: dev
    6. cloud:
    7. nacos:
    8. discovery:
    9. namespace: ${spring.profiles.active}
    10. server-addr: 192.168.0.1:8848
    11. config:
    12. namespace: ${spring.profiles.active}
    13. server-addr: 192.168.0.1:8848
    14. ext-config:
    15. - data-id: test-server-tcp.yml
    16. group: ${spring.profiles.active}
    17. refresh: true

    3) 在nacos管理界面配置

        1.新建namespace

       2.新建配置文件

     

     

    二、动态读取变化的配置

    在需要引用配置的类中加入注解@RefreshScope

    示例代码:

    1. @RefreshScope
    2. @RestController
    3. @RequestMapping(value="/config")
    4. public class NacosConfig {
    5. @Value(value = "${nacos.test-name}")
    6. private String testName;
    7. @Value(value = "${nacos.test-port}")
    8. private String testPort;
    9. @GetMapping(value = "/get")
    10. public String getConfig(){
    11. return "name: "+ testName +";" + "port: "+ testPort +";";
    12. }
    13. }

    可以通过http url来验证动态配置是否生效

    三、动态配置发生变化后,定时任务不执行问题

    问题:程序里面有定时任务,定时任务读取的配置如果发生动态变化后,定时任务不执行。

    原因:定时任务读取配置文件懒加载的方式

    解决:在定时任务所在的类,实现一个接口

    ApplicationListener并实现其方法,空方法即可

     

    PS: 在程序里面所有用到定时任务的类中都要实现上述接口。

  • 相关阅读:
    基于映射序列码的自适应查询树防碰撞算法
    【C++】list的介绍及使用 | 模拟实现list(万字详解)
    ScheduledExecutorService详解
    【Node实现数据加密】
    一、VSCode——免安装
    Spring AOP
    OSPF的防止环路的机制
    网络基础详解
    中南林业科技大学Java实验报告九:内部类和异常类
    内网渗透神器CobaltStrike之重定向服务配置(二)
  • 原文地址:https://blog.csdn.net/mawei7510/article/details/126585547