Spring有一个很好的机制PropertyPlaceholderConfigurer,用于将诸如超时,JDBC Urls等值注入Spring bean以进行配置.是否有一种合理的方法来处理可在运行时更改的配置值?
更新:使用Spring 3.1,有一种很好的方法可以通过PropertySources包含非静态配置源,例如数据库.一些ApplicationContexts提供了一种原则上能够处理不断变化的配置值的刷新机制.然而,它首先停止应用程序,然后创建所有bean新鲜,然后再次启动应用程序上下文.但是,出于我们的目的,我需要一种透明地执行此操作的方法,以便服务器正确处理当前正在运行的请求.
执行此操作的另一个想法是在配置更改时创建新对象的自定义Scope.遗憾的是,提供给Scope的ObjectFactory使用了预处理的bean定义,因此不会从配置中重新读取占位符.因此,创建的对象具有相同的配置.