Pergunta

Eu estou usando um ResourceBundle e Locale para pesquisa de valores de propriedade. Muito simplesmente, os olhares código como este:

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

A minha pergunta é sobre o desempenho. Seria uma abordagem caching ser mais rápido ou uma melhor implementação de acessar arquivos de propriedade no classpath? O meu entendimento é que o desempenho ResourceBundle é muito bom em geral.

O arquivo de propriedades (neste caso) é menos do que 30 linhas (isto é, ~ 30 pares de chave / valor).

Eu questiono o desempenho, uma vez que poderia usar uma abordagem semelhante em páginas de alta carga, e a abordagem de pesquisa-on-demand pode custar caro.

Foi útil?

Solução

De acordo com a Javadocs :

casos pacote de recursos criados pelos métodos getBundle fábrica são armazenados em cache por padrão, e os métodos de fábrica retornar a mesma instância pacote de recursos várias vezes se tiver sido armazenado em cache.

Então, você não precisa fazer cache em seu próprio país. Mas se você precisa de controle do comportamento de cache mais refinado, você pode usar o getBundle(String, ResourceBundle.Control) sobrecarga e passar um personalizado Control em.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top