谷粒商城-nacos配置中心
问题
‘’’
在使用nacos作为配置中心时,添加刷新配置 @RefreshScope 发现无法获取配置,一直为 null
‘’’
解决
‘’’
将 @RefreshScope 改为 @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
‘’’
解释
‘’’
这个注解的proxyMode默认值是ScopedProxyMode.TARGET_CLASS,这个代理模式使用的是CGLIB方式。如果@RefreshScope使用在@Controller(不止这一个)标记的类上就会出现注入null值的问题。@RefreshScope只要是用在其他会被spring使用CGLIB代理的类上就会出问题。原因是@RefreshScope默认使用CGLIB代理,而目标类又是被CGLIB代理过的,这样就被代理了两次,第二次也就是@RefreshScope代理的时候会出现属性丢失的问题。
‘’’