使用SpringCloudConfigRefresh刷新Spring原型bean属性

使用SpringCloudConfigRefresh刷新Spring原型bean属性,spring,spring-boot,spring-cloud-config,Spring,Spring Boot,Spring Cloud Config,我有一个原型Bean,我希望在触发SpringCloudConfig/refresh端点时刷新它的属性(用@Value注释) 原型bean是否自动刷新其外部配置属性?或者它们仍然需要标记为@RefreshScope,这样它们就生活在“refresh”作用域缓存中,并像任何其他bean一样无效 背景: 我在另一个单例Bean上使用了@RefreshScope,并尝试将注释放在原型Bean上,但这给一些现有代码和单元测试带来了问题,因为它们通过appContext.getBean(“beanName

我有一个原型Bean,我希望在触发SpringCloudConfig/refresh端点时刷新它的属性(用
@Value
注释)

原型bean是否自动刷新其外部配置属性?或者它们仍然需要标记为
@RefreshScope
,这样它们就生活在“refresh”作用域缓存中,并像任何其他bean一样无效

背景:

我在另一个单例Bean上使用了
@RefreshScope
,并尝试将注释放在原型Bean上,但这给一些现有代码和单元测试带来了问题,因为它们通过
appContext.getBean(“beanName”,constructorArgs)实例化Bean
并将返回的对象强制转换为预期的bean类型。但是使用
@RefreshScope
时,它在混合中添加了一个代理,这会导致现有代码出现
ClassCastException
。我曾尝试通过添加接口来解决这个问题,但这在单元测试中导致了更多的麻烦,它直接在bean中调用方法,这可能不应该,我希望不要将这些方法拉入接口

但后来我意识到,原型bean可能会通过SpringCloudConfig在任何情况下自动刷新它们的属性,因为它们每次都被实例化

我已经阅读了SpringCloud文档并在这里进行了搜索,但没有找到任何以这种方式调用原型bean的东西。所以,也许这是一厢情愿的想法