**
关于@RefreshScope放在controller类头部导致从nacos配置中心得到的数据为空的问题
**
关于使用@RefreshScope导致从Nacos配置中心获取的数据为空的问题
在学习springcloud中碰到想要在Nacous配置中心热加载数据的时候发现加上@RefreshScope配置导致所有数据都是null,不加@RefreshScope则会导致无法热加载。
解决办法
将需要从Nacos热加载的数据封装成一个类交给Spring管理
@Component
@RefreshScope
public class beanl {
@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
然后再controller中调用实体类的get/set方法即可
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
@Autowired
private CouponService couponService;
@Autowired
private beanl n;
@RequestMapping("/test")
private R test() {
System.out.println(n.getAge() + n.getName());
return R.ok().put("name", n.getName()).put("age", n.getAge());
}
}
/