【问题标题】:String Constants Vs Resource Bundle in an Java web ApplicationJava Web 应用程序中的字符串常量与资源包
【发布时间】:2011-01-19 07:53:36
【问题描述】:
从去年开始,我们开发了一个应用程序,其中我们使用静态字符串常量来存储常量。
喜欢
公共静态最终字符串 PAYMENT_CHEQUE = "支票";
我需要的地方,即在 jsp 页面以及 Action 类中,我将引用上述字符串常量
我在查看资源包、属性文件后想,我的问题是
- 如果我有任何性能影响
使用属性文件比较
静态字符串常量?
- 哪个更好静态字符串
常量和属性文件键
价值对?
- 我们使用的那个好主意 id
静态字符串常量(用于标签)
在jsp中?
请给我建议
【问题讨论】:
标签:
java
string
constants
resourcebundle
【解决方案1】:
一般来说,使用硬编码字符串是个坏主意,因为这意味着每次更改都需要一个新的编译-部署周期,而使用属性文件意味着需要重新启动应用程序而无需其他任何东西(尽管有些人会说本身就是要付出高昂的代价)。使用属性文件的另一个优点是能够通过将应用程序切换到另一个文件来切换语言 - 比在代码中拥有多组常量标签更合理。
您可以像现在一样使用最终的静态字符串字段,只需在应用程序初始化阶段为它们提供从属性文件中读取的值,而不是为每个常量返回文件(这会很昂贵!)。这样您就不必在应用程序范围内进行更改,并且您仍然可以享受我上面提到的优势。
【解决方案2】:
在这种情况下我更喜欢资源包:
- 您的代码更可能出现资源捆绑的性能问题。不要在没有数据证明的情况下抛弃完美的技术。
- 资源包可让您轻松实现应用国际化;静态字符串不是这样。
- 如果您已经在使用 JSTL(而且您应该这样做),那么它是一种很容易在 JSP 中实现的 Java 习惯用法。