我正处于使用Hibernate编写Spring3 MVC webapp的基本阶段。我希望所有数据模型类都能够访问基本配置值,例如,数据库表前缀名称等。我想要这个选项,所以我(或其他开发人员)可以通过在.properties中修改它们来动态地改变它们。文件。
我最好的办法是在一个util包中创建一个Config类,其中一个静态块从.properties文件中加载一堆属性?我认为类本身可能是静态的,有各种getter来访问其中的值。
如果我选择上面的方法,如果由于某种原因我指定的.properties文件无法加载,我怎么能确保应用程序没有加载(轻轻失败)?有例外吗?
如果我的方式发臭,那可能是一个更好的方案?
谢谢!
答案 0 :(得分:1)
这是一个很好的方法恕我直言。如果你要为这个类显式声明一个bean,比如
如果无法实例化bean,
<bean id="myConfig" class="com.yourcompany.yourproject.Config"/>
spring将在启动时失败。因此,如果属性文件不可读/不可用,则只需从Configs构造函数中抛出未经检查的异常。
如果由于某种原因 - 你在全局范围内启用了延迟加载,则必须为此bean明确禁用它,否则你将无法获得failfast解决方案
<bean id="myConfig" class="com.yourcompany.yourproject.Config" lazy-init="false"/>
编辑: 这个场景的另一个不错的功能是你可以告诉maven'过滤'资源(.properties文件),你可以得到所有的maven变量。这就是我的prop文件的外观(我将这个信息用于About对话框。有没有人打开一个关于对话框的btw?)
project.version=${project.version}
project.name=${project.name}
project.organization.name=${project.organization.name}
project.url=${project.url}
project.description=${project.description}