gpt4 book ai didi

java - 如何在启动时加载应用程序范围的设置(对于 Spring3 webapp)?

转载 作者:行者123 更新时间:2023-12-01 15:19:07 25 4
gpt4 key购买 nike

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

我最好的选择是在 util 包中创建一个带有静态 block 的 Config 类,该静态 block 从 .properties 文件加载一堆属性?我想类本身可以是静态的,有各种 getter 来访问其中的值。

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

如果我的方式很糟糕,什么可能是更好的方案?

谢谢!

最佳答案

恕我直言,这是一个很好的方法。如果您要为此类显式声明一个 bean,例如

<bean id="myConfig" class="com.yourcompany.yourproject.Config"/>

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

如果 - 由于某种原因 - 您全局启用了延迟加载,您必须为此 bean 显式禁用它,否则您将无法获得快速失败解决方案

<bean id="myConfig" class="com.yourcompany.yourproject.Config" lazy-init="false"/>

编辑:这个场景的另一个很好的功能是你可以告诉maven“过滤”资源(.properties 文件),并且你可以获得所有maven 变量。这就是我的 prop 文件的样子(我将此信息用于“关于”对话框。顺便说一句,有人打开过“关于”对话框吗?)

project.version=${project.version}
project.name=${project.name}
project.organization.name=${project.organization.name}
project.url=${project.url}
project.description=${project.description}

关于java - 如何在启动时加载应用程序范围的设置(对于 Spring3 webapp)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com