martes, 28 de julio de 2015

Spring y el manejo de fichero properties

Buenas, en este caso vamos a explicar como se realiza el manejo de ficheros properties con Spring. Y posteriormente vamos a explicar como utilizar dichas propiedades en ficheros Java y ficheros de presentación. Para empezar debemos configurar el/los ficheros de propiedades. Esto lo podemos hacer a través de 'util:properties' que nos permite indicar uno o más ficheros de propiedades y a través de 'context:property-placeholder' asociamos esas mismas propiedades al contexto, lo que luego nos facilitará su obtención y utilización.


 
 
 
 
Para utilizarlos en un fichero de presentación (jsp, xhtml, etc) debemos hacer uso de el taglib de spring 'spring:eval'. A través del identificador indicado en el fichero de configuración 'propertyConfigurator' podremos acceder a las diferentes variables configuradas en los ficheros properties (en este caso 'app.name').
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

Por último para utilizarlo en fichero java, podemos crear una clase al estilo de la típica clase de constantes, pero obteniendo el valor directamente del fichero de propiedades. Esta clase la inyectaremos en las otras clases y cuando accedamos a sus atributos, tendremos el valor del fichero de propiedades.
@Component
public class ConstansUtil {
 @Value("${app.debug.mode}") 
        private String appDebugMode;
 public String getAppDebugMode() {
  return appDebugMode;
 }
 public void setAppDebugMode(String appDebugMode) {
  this.appDebugMode = appDebugMode;
 } 
}
En este caso como ya hemos configurado anteriormente los ficheros de propiedades a través del XML, nos funcionará. Pero también podemos configurar directamente en la clase que ficheros de propiedades se van a usar. De esta forma:
@Configuration
@PropertySource("classpath:application.properties")
public class ConstansUtil {
   @Bean
   public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
      return new PropertySourcesPlaceholderConfigurer();
   }
}

No hay comentarios:

Publicar un comentario