在更新配置文件,并且提交到git上面去,调用刷新的接口
http://localhost:9002/actuator/bus-refresh
重新请求业务接口,发现数据没有刷新。一脸懵逼的开始找原因:
1:首选怀疑是否刷新的问题,所以查看本地缓存文件。
结论:本地缓存文件已经刷新。
2:重启业务应用试试是否生效,
这个时候居然报错了
java.nio.charset.MalformedInputException: Input length = 1
百度了下度娘,发现是因为配置文件存在特殊编码的问题,好吧。对着配置进行检查,然后重新编写,提交。刷新,还是不起作用。但是这个时候确实不出现上面的异常了。
3:检查是否加了刷新注解
一看代码,真的是日了狗的心都有了,居然没有加刷新注解
@RestController
@RefreshScope
public class TestController {
@Value("${user.info.name:error}")
private String userName;
@GetMapping("/test")
@ResponseBody
public String test() {
return userName;
}
}
所以要想使用自动刷新一定要加上相应的注解
@RefreshScope