@NacosConfigListener注解监听配置变化失效解决

目录

项目初始配置:

场景复现

排查思路:

解决:

结果:


项目初始配置:

  • maven依赖如下:
          <!--配置与发现依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>

  • 类声明

  • 两种监听配置的方式:手动注册、使用注解

场景复现

  1. 修改文件内容:

  

   2.如下结果所示:

  只有手动添加的listener能获取到变更内容。注解的形式不生效

排查思路:

@NacosConfigListener既是注解,则应有相应的注解处理器。搜索全局后,没有找到,chatgpt询问后得知其对应的处理器类为:com.alibaba.nacos.spring.context.annotation.config.NacosConfigListenerMethodProcessor(在nacos-spring-context.jar中)。因此只要保证处理器类被正确注册使用即可

解决:

step1.添加依赖

         <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-spring-context</artifactId>
                <version>1.1.1</version>
            </dependency>

step2.确保处理器类被正确加载注入spring容器:启用nacosConfig注解

package cn.yangfeiself.serverorder;

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

@SpringBootApplication
//启用nacosConfig注解,该注解最终会扫描加载NacosConfigListenerMethodProcessor类
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "${spring.cloud.nacos.config.serverAddr}"))
public class ServerOrderApplication {

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

}

结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值