有没有办法在运行时更改spring bean(service)的属性?我正在为一个小应用程序使用grails,用户可以在其中更改某些设置。这些设置被写入属性文件,该文件位于grails的ext配置参数中。因此,当我重新启动应用程序时,会读入属性并且bean在这些更改时是init,有没有办法在没有完全重启的情况下重新加载我的服务?
我希望用户可以传递的是设置到服务,一切都在运行时可用。
答案 0 :(得分:1)
我认为你需要重新设计你接近这个要求的方式。这是一个巨大的代码气味,您的用户可以通过应用程序的UI执行操作,需要重新启动才能使其生效。
话虽如此,我认为您可以抓住ApplicationContext object,在UI中捕获事件,并替换您的服务实例,因为您应该可以访问新的配置值上下文。但我会建议不要这样做,这是一个会让你困扰的hacky解决方案:)