在运行时应用基于 Spring 的应用程序中的设置
我们有基于 Spring (Spring.NET) 的 Web 应用程序,并使用 VariablePlaceholderConfigurer 将一些设置保存在单独的属性文件中。
这些属性主要是影响业务逻辑的不同值,例如电子邮件、超时、路径等。
现在我们需要实现管理 UI,以允许用户以更友好的方式更改这些设置。
因此,我们将把所有这些设置移动到数据库中。
问题:实现我在基于 Spring 的应用程序中描述的设置的最佳(标准、常见)方法是什么? (假设我们希望更改立即生效而无需重新启动应用程序。)
如果我们能够在将值设置为 bean 属性时保持当前的方法,那就太好了。
We have Spring based (Spring.NET) web application and use VariablePlaceholderConfigurer to keep some settings in a separate properties file.
These properties are mainly different values affecting business logic, like emails, timeouts, paths, etc.
Now we need to implement administrative UI to allow users to change these settings in more friendly way.
So we will move all these settings to a database.
Question: What is the best (standard, common) approach to implementing settings like I described in Spring based application? (Assuming we want changes to be effective immediately without application restart.)
It is good if we can keep our current approach when setting values as just properties of beans.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
VariablePlaceholderConfigurer
是ObjectFactoryPostProcessor
< /a>,仅在读取对象定义后调用。因此,您不能简单地在VariablePlaceholderConfigurer
配置中引入一个新的IVariableSource
,因为它只有在容器重新加载后才会生效。您必须创建一个
IObjectObjectPostProcessor
在运行时修改容器管理对象的属性。
The
VariablePlaceholderConfigurer
isObjectFactoryPostProcessor
, which is only invoked after reading the object definitions. So you cannot simply introduce a newIVariableSource
that you refer to in yourVariablePlaceholderConfigurer
configuration, because it will only take effect after container reload.You have to create an
IObjectObjectPostProcessor
to modify properties on container managed objects at runtime.