我有一个大文件,其中包含在语言环境中指定的消息。例如:
book.registration.error.service = ..
book.registration.error.empty.book = ..
book.registration.error.file.format.book = ..
publisher.register.firstpublisher = ..
publisher.register.publisherNameUa = ..
publisher.register.nameRu = ..
publisher.register.NameEn = ..
有很多消息。为了阅读它们,我使用
java.util.ResourceBundle.getBundle(messagesLocation, locale)
但是我会阅读所有消息。有没有办法只阅读一些消息。例如,以' book'?
开头的只读消息答案 0 :(得分:0)
实现目标的最佳方法是将非常大的资源包分解为多个包 - 并将所有“书”包放入特定的包中。
你可以自己解析文件,但你仍然必须阅读整个文件(除非它已经排序),但这似乎打败了你想要实现的目的。
通常情况下,如果你遇到内存或性能问题,你只会走这条路 - 如果是内存问题,分解捆绑可能会有所帮助;如果是性能问题,在后台线程上初始化包可能会有所帮助。
如果不明显 - 你应该总是缓存捆绑!每次重新创建捆绑包都是一种浪费 - 如果您想支持动态更改资源,只需在资源实际更改时使缓存无效。