Java 如何在启动时加载应用程序范围的设置(对于Spring3WebApp)?

Java 如何在启动时加载应用程序范围的设置(对于Spring3WebApp)?,java,web-applications,spring-mvc,spring-3,Java,Web Applications,Spring Mvc,Spring 3,我正处于使用Hibernate编写Spring3MVCwebapp的基本阶段。我希望所有数据模型类都能够访问基本配置值,例如,数据库表前缀名称等。我希望使用此选项,以便我(或其他开发人员)可以通过在.properties文件中修改它们来动态更改内容 我最好在一个util包中创建一个配置类,其中包含一个从.properties文件加载一组属性的静态块?我认为类本身可以是静态的,有各种getter来访问其中的值 如果我选择上面的方法,如果由于某种原因无法加载我指定的.properties文件,我如何

我正处于使用Hibernate编写Spring3MVCwebapp的基本阶段。我希望所有数据模型类都能够访问基本配置值,例如,数据库表前缀名称等。我希望使用此选项,以便我(或其他开发人员)可以通过在.properties文件中修改它们来动态更改内容

我最好在一个util包中创建一个配置类,其中包含一个从.properties文件加载一组属性的静态块?我认为类本身可以是静态的,有各种getter来访问其中的值

如果我选择上面的方法,如果由于某种原因无法加载我指定的.properties文件,我如何确保应用程序没有加载(轻微失败)?有例外吗

如果我的方式很糟糕,还有什么更好的方案


谢谢

这是一个很好的方法。如果您要显式地为这个类声明一个bean,比如

如果spring不能实例化bean,它将在启动时失败。因此,如果属性文件不可读/不可用,只需从Configs构造函数中抛出一个未经检查的异常

如果出于某种原因,您在全局范围内启用了延迟加载,那么您必须显式地为此bean禁用它,否则您将无法获得快速故障解决方案

编辑: 这个场景的另一个很好的特性是,您可以告诉maven“过滤”资源(.properties文件),并且可以获得所有maven变量。这就是我的道具文件的外观(我将此信息用于“关于”对话框。顺便问一下,有人打开过“关于”对话框吗?)


这很好。在配置初始值设定项中抛出异常后,spring会自动关闭,或者我必须捕获异常并执行system.exit?很抱歉造成混淆-我还没有用Spring做那么多,我仍然在ORM层上。它将由Spring处理。如果是应用服务器,则应用部署将失败,如果是独立应用,则将退出。应用服务器。。。是的,听起来很有趣。。有什么好的读物吗?只有谷歌的JBoss、Glassfish、IBMWebSphere等等。。我主要使用玻璃鱼,部分是因为它是免费的,部分是因为主观口味。YMMV最终在哪里捕获异常?在“catch”块中,我该如何退出?Spring如何知道不加载bean,因此不加载应用程序?我计划使用Tomcat 6或7。非常感谢。
project.version=${project.version}
project.name=${project.name}
project.organization.name=${project.organization.name}
project.url=${project.url}
project.description=${project.description}