Propiedades

Las propiedades  son una utilidad que vienen a sustituir el concepto de variables de entorno. Podemos utilizarlas para añadir información adicional a nuestras clases.

La clase Properties es una implementación de Map por lo cual todos sus elementos se componen de clave-valor ambos de tipo String.

Esta clase expone los siguientes métodos útiles:

  • propertyNames; devuelve  un  Enumeration  con  todos  los  nombres  de  las propiedades.
  • getProperty; este método recibe el nombre de la propiedad y devuelve el valor asociada a esta como un String

El método System.getProperties devuelve una instancia de tipo Properties

Podemos utilizar la opción -D para incluir nuevas propiedades.

 

Para entender mejor la utilidad de este objeto, vamos un ejemplo de uso.

Supongamos que tenemos que parametrizar el acceso a una base de datos usando Java . Normalmente nos encontraremos con un código Java similar a este:

Es evidente que no queremos tener integrado en el código la cadena de conexion , el driver usuario y password . Sino que preferiremos tenerlo en un fichero aparte de tal forma que podamos cambiar a voluntad la base de datos de destino y el usuario que se conecta. Para solventar este problema disponemos de los ficheros de propiedades. Los ficheros de propiedades disponen de una pareja clave valor por linea en la cual se definen las diferentes propiedades.

En un archivo de texto, ponemos los datos.

Una vez que tenemos el fichero de propiedades , el siguiente paso es construir el código que nos lea los valores que están almacenados en él.

Solamente que ahora hemos conseguido externalizar las propiedades y que no haga falta recompilar el programa para que funcione. El manejo de properties siempre ha sido algo bastante flexible y permite gestionar de forma directa ficheros XML.

En este caso la estructura es algo más compleja . Evidentemente tendremos que actualizar nuestro código de Java para leer los datos de este nuevo tipo de fichero . En esta situación todo es sencillo ya que simplemente basta con cambiar un método.