使用Spring Cloud Config刷新刷新Spring原型bean属性

时间:2016-11-10 17:38:03

标签: spring spring-boot spring-cloud-config

我有一个原型Bean,我希望在触发Spring Cloud Config / refresh端点时刷新其属性(注释为@Value)。

原型Beans是否会自动刷新外部配置属性?或者他们是否仍然需要标记@RefreshScope,以便他们生活在'刷新'范围缓存中并像其他任何bean一样失效?

背景:

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

但后来我突然意识到,原型bean可能会在任何使用它们时自动通过Spring Cloud Config刷新其属性,因为它们每次都会被实例化。

我已经通过Spring Cloud文档阅读并在此处搜索但是找不到以这种方式专门调用原型bean的任何内容。也许这是一厢情愿的想法。

0 个答案:

没有答案