2011-11-16 66 views
1

有没有办法在运行时更改Spring bean(服务)的属性?我正在使用Grails作为小应用程序,用户可以在其中更改某些设置。这些设置被写入一个属性文件,该文件位于grails的ext config params中。所以,当我重新启动应用程序时,属性被读入,并且这个bean是init的这个改变,有没有办法重新加载我的服务而没有完全重启?Spring/Grails - 使用新属性重装bean

我想实现的是用户可以传递的是服务的设置,并且在运行时可以使用所有设置。

+0

Does http://stackoverflow.com/questions/595118/having-spring-bean-properties-refreshed-automatically-from-属性文件的帮助? – bbaja42

回答

1

我认为你需要重新设计你接近这个需求的方式。这是一种巨大的代码气味,您的用户可以通过应用程序的UI来做些事情,需要重新启动才能起作用。我认为你可以抓住ApplicationContext object,在UI中捕获事件,并替换服务实例,因为您应该可以访问该环境中的新配置值。但我会建议反对它,这是一个hacky的解决方案,将回来困扰你:)