【发布时间】:2009-12-18 20:41:26
【问题描述】:
由于我已经有application.properties,其中定义了数据库连接设置,我决定将我的应用程序特定设置也放入该文件中是好的。更进一步 - 当 spring 读取这些属性时,我将我的 Settings bean 声明如下
<bean name="settingsBean" class="com.tickets.constants.Settings">
<property name="settings">
<props>
<prop key="backup.dir">${backup.dir}</prop>
<prop key="smtp.host">${smtp.host}</prop>
</props>
<property>
</bean>
现在,有时会发生,我需要类中的一些属性,这些属性并不直接在 spring 上下文中。是的 - 我可以从我的 web 应用程序上下文中获取 spring 上下文,或者将设置作为方法参数传递给实用程序类,但这是我的替代方法(这是 Settings 类):
private static Properties staticSettings;
@PostConstruct
public void init() {
// making the settings available for static access
staticSettings = settings;
}
现在,这看起来有点不对劲。但我想不出不使用它的充分理由。 所以要提出这个问题 - 有什么理由不使用我的方法,还有更好的方法吗?
【问题讨论】: