spring boot @RefreshScope @PostConstruct refresh 配置文件刷新不及时

 

由于util类中需要使用application.properties中数据

@Value("${acpsdk.sign}")
private String sign;
    
private static String signStatic;
    
@PostConstruct
public void setSignStatic() {
   signStatic= this.sign;
}
    
public static String getSignStatic() {
    return signStatic;
}

使用 @PostConstruct注解解决注入问题,

例如:原始:acpsdk.sign=09

           修改:acpsdk.sign=01

在修改配置文件调用POST请求手动刷新配置文件时http://ip:port/actuator/refresh,发现第一次调用getSignStatic()方法返回09,

打断点发现,先调用getSignStatic(),随后才调用的setSignStatic()将值改变。

解决:

@EventListener
public void onRefreshScopeRefreshed(final RefreshScopeRefreshedEvent event) {
    getClass();
}

在bean上添加上面方法,调用会触发它的初始化(@PostConstruct方法).

转自:https://stackoverflow.com/questions/44431760/spring-boot-with-refreshscope-postconstruct-predestroy

中文翻译:https://codeday.me/bug/20190322/804608.html

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值