标签:有一个 min url 工作 作用 tab ref 条目 注入
当配置更改时,标有@RefreshScope
的Spring @Bean
将得到特殊处理。这解决了状态bean在初始化时只注入配置的问题。例如,如果通过Environment
更改数据库URL时DataSource
有开放连接,那么我们可能希望这些连接的持有人能够完成他们正在做的工作。然后下一次有人从游泳池借用一个连接,他得到一个新的URL。
刷新范围bean是在使用时初始化的懒惰代理(即当调用一个方法时),并且作用域作为初始值的缓存。要强制bean重新初始化下一个方法调用,您只需要使其缓存条目无效。
RefreshScope
是上下文中的一个bean,它有一个公共方法refreshAll()
来清除目标缓存中的范围内的所有bean。还有一个refresh(String)
方法可以按名称刷新单个bean。此功能在/refresh
端点(通过HTTP或JMX)中公开。源码来源
注意
|
@RefreshScope (技术上)在@Configuration 类上工作,但可能会导致令人惊讶的行为:例如,这并不 意味着该类中定义的所有@Beans 本身都是@RefreshScope 。具体来说,任何取决于这些bean的东西都不能依赖它们在刷新启动时被更新,除非它本身在@RefreshScope (在其中将重新刷新并重新注入其依赖关系),那么它们将从刷新的@Configuration )重新初始化。 |
标签:有一个 min url 工作 作用 tab ref 条目 注入
原文地址:http://www.cnblogs.com/abbie133/p/7680335.html