Como uso o ResourceBundle para evitar caminhos de configuração codificados nos aplicativos Java?
-
03-07-2019 - |
Pergunta
Eu gostaria de eliminar as dependências de caminhos codificados para dados de configuração nos meus aplicativos Java, entendo que o uso do ResourceBundle me ajudará a usar o carregador de classe para encontrar recursos.
Alguém pode me dizer como eu substituiria um caminho codificado por um recurso (digamos um arquivo de dados de configuração .Properties exigido por uma classe) com o uso apropriado do ResourceBundle? Exemplo claro simples, se possível, obrigado a todos.
Solução
Antes do Java 6, o ResourceBundle normalmente permitia:
- Strings de um grupo de arquivos de propriedades localizadas, usando PropertyResourcebundle
- Objetos de um grupo de classes localizadas, usando Listresourcebundle
Java 6 vem com o ResourceBundle.Control classe que abre a porta para outras fontes de recursos de recursos, por exemplo:
- Arquivos XML (consulte o Exemplo 2 em Javadoc)
- Linhas de banco de dados
Espero que isto ajude.
Outras dicas
Você vai querer examinar Resource.getBundle (string). Você passa o nome totalmente qualificado de um recurso no caminho de classe para carregar como um arquivo de propriedades.
Você não precisa de um ResourceBundle. Um objeto de propriedades simples pode fazer o trabalho. Basta usar o Classloader para obter um arquivo de entrada para seu arquivo de propriedades e usá -lo para carregar valores de DE. Se você precisar lidar com configurações de usuário mais sofisticadas, use o API de preferências.
Atenciosamente
O truque por trás do recurso.getbundle (..) é o uso do carregador de classe. Você pode carregar tudo o que está no seu caminho de classe acessando -o através deste.getClass (). GetClassLoader (). Resource.getBundle (..) é um ajudante prático para usá -lo no tópico de recurso/locatização.