我们有一个豆
class MonetDrop(){
def chance
def doDrop(){
println("Your chance to win ${chance} %")
}
}
在context.groovy初始化bean并设置属性'chance'的值:
beans{
monetDrop(MonetDrop){
chance = 50
}
}
当我在上下文中更改“机会”变量时,我需要刷新bean。 我也可以使用xml或java config,并将此bean移动到单独的配置文件中。 当工作应用程序中的config(!)发生变化时,如何设置刷新bean? 适用于Java 1.8 / Groovy 2.4.4 + Springboot
答案 0 :(得分:0)
如何获取bean并手动更新?你可以@Autowired
BeanFactory
并尝试更新指定的bean或只更新@Autowired
确切的bean。
例如:
@Component
public class MonetDropUpdater {
@Autowired
private MonetDrop drop;
public void update () {
// update drop.chance
}
}
如果chance
已更新,请记得更新MonetDrop#chance
。
refresh
此bean的另一种方法是通过注释@Refresh
。
最后,如果MonetDrop
是@ConfigurationProperties
bean,您只需添加spring-boot-actuator
即可使用spring-cloud-config-client
刷新它。