开发公司nacos配置自动刷新

提示:开发公司文章写完后,开发公司目录可以自动生成,开发公司如何生成可参考右边的帮助文档

文章目录


开发公司自动刷新配置

nacos开发公司自动刷新配置是对于我开发公司们开发来说是非常方便的,开发公司不用每次修改都重启服务(开发公司这里说的是常量配置,不是redis、数据库之类的)。那么对于能正常刷新吗?

一、简单实现


z nacos配置中心添加card.app.firmIds=2配置,发起请求得到返回数据

然后改成card.app.firmIds=2,6再次发起请求,得到的是

nacos配置的自动刷新就简单实现了。那么如果我们想在工具类中将配置赋值怎么办呢

二、工具类自动刷新

1.使用PostConstruct注解

将nacos配置读取到后赋值到静态变量中

这种方式可以在服务启动时将nacos配置读取到静态变量中,但是如果nacos修改了配置的话,是不会自动刷新重新赋值给静态变量的。因为PostConstruct注解是在spring生命周期后期回调带有该注解的方法。服务不重启就不再次回调该方法,那么新的值也就不会赋上。那么我们有没有其他办法来实现呢?答案是肯定有的。

2.ApplicationContextAware

我们通过一个校验方法来验证是否读取到新的配置

public static boolean checkFirmId(Long firmId){        FrimAndChannelUtil frimAndChannelUtil = applicationContext.getBean(FrimAndChannelUtil.class);        if (CollectionUtils.isEmpty(listFirmIds)||                !listFirmIds.stream().map(String::valueOf).collect(Collectors.joining(",")).equals(frimAndChannelUtil.getFirmIds())){            handleFirmIdAndChannel(frimAndChannelUtil.getFirmIds(),null);        }        return listFirmIds.contains(firmId);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

传入一个id,通过getBean方法获取FrimAndChannelUtil对象,在spring的单例池中肯定是有这个对象的,但是获取到后,对于

@Value("${card.app.firmIds}")    private String firmIds;    @Value("${card.app.tradeChannels}")    private String tradeChannels;
  • 1
  • 2
  • 3
  • 4

这两个参数是会重新读取的,所以在获取的时候是可以重新拿到nacos的配置的,而在校验方法中,我们有做判断是否需要重新赋值,如果对比出原先list数据和现有的配置不一致就重新赋值。当然这个时候,我们是不需要PostConstruct注解了,在第一次调用校验方法时进行初始化。以上就是静态变量动态刷新的实现。

总结

实现静态变量动态刷新的方法有很多,自己使用自己觉得OK的就行,条条大路通罗马。只是希望对于没有思路的朋友有一点提示。大家一起努力吧!!!希望早点解封,已经半个月了。。。。。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发