¿Cómo uso ResourceBundle para evitar rutas de configuración codificadas en las aplicaciones Java?
-
03-07-2019 - |
Pregunta
Me gustaría eliminar las dependencias en las rutas codificadas para los datos de configuración en mis aplicaciones Java, entiendo que usar ResourceBundle me ayudará a usar el cargador de clases para encontrar recursos.
¿Puede alguien decirme cómo reemplazaría una ruta codificada en un recurso (por ejemplo, un archivo de datos de configuración de .properties requerido por una clase) con el uso apropiado de ResourceBundle? Ejemplo claro simple si es posible, gracias a todos.
Solución
Antes de Java 6, ResourceBundle generalmente permitía:
- Cadenas de un grupo de archivos de propiedades localizadas, utilizando PropertyResourceBundle
- Objetos de un grupo de clases localizadas, utilizando ListResourceBundle
Java 6 incluye el ResourceBundle. Clase de control que abre la puerta a otras fuentes de ResourceBundles, por ejemplo:
- archivos XML (ver ejemplo 2 en Javadoc)
- filas de la base de datos
Espero que esto ayude.
Otros consejos
Querrá examinar Resource.getBundle (String) . Le pasa el nombre completo de un recurso en la ruta de clase para cargarlo como un archivo de propiedades.
No necesitas un ResourceBundle. Un simple objeto de propiedades puede hacer el trabajo. Simplemente use el cargador de clases para obtener un flujo de entrada para su archivo de propiedades y utilícelo para cargar valores. Si necesita manejar configuraciones de usuario más sofisticadas, use preferences api .
Saludos cordiales
El truco detrás de Resource.getBundle (..) es el uso del cargador de clases. Puede cargar todo lo que está en su classpath accediendo a través de this.getClass (). GetClassLoader (). Resource.getBundle (..) es un ayudante práctico para usarlo en el tema de recursos / locatización.