El uso de Spring Boot properties es muy habitual cuando trabajamos con una aplicación de Spring Boot. A diferencia de otras aplicaciones clásicas de Spring Framework , Spring Boot hace uso del principio de convención sobre configuración y define un fichero por defecto de propiedades . Este fichero se encuentra en la carpeta resources de nuestro proyecto.
Spring Boot Properties
Vamos a usar este fichero de propiedades para dar de alta dos valores (un nombre y un apellido) y acceder a ellos desde nuestra aplicacion. Tenemos que configurar nuestra aplicación de Spring Boot con las anotaciones necesarias. En nuestro caso nos vamos a definir una clase Java sencilla que contenga ambas propiedades.
package com.arquitecturajava.springPrueba; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MisPropiedades { @Value("${nombre}") private String nombre; @Value("${apellidos}") private String apellidos; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } }
Como podemos observar nos hemos apoyado en la anotación @Value para inicializar las propiedades.
Hemos hecho uso de spring expression language para acceder a cada uno de los valores utilizando ${valor} . De esta forma tan sencilla seremos ya capaces de acceder a las propiedades definidas en el fichero application.properties. Nos queda simplemente inyectar nuestro clase en el proyecto de SpringBoot y ejecutarlo como proyecto de consola para ver el resultado.
package com.arquitecturajava.springPrueba; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication class SpringPruebaApplication implements CommandLineRunner { @Autowired MisPropiedades propiedades; public static void main(String[] args) { SpringApplication app = new SpringApplication(SpringPruebaApplication.class); app.run(args); } @Override public void run(String... arg0) throws Exception { System.out.println(propiedades.getNombre()); System.out.println(propiedades.getApellidos()); } }
Ahora nos es suficiente con ejecutar nuestra aplicación desde Eclipse y veremos como se imprime el nombre y los apellidos por la consola.
Acabamos de utilizar las capacidades de Spring Boot para manejo de propiedades.
Hola, hay forma de cambiar los valores del application.properties desde la consola de ejecucion? Por ejemplo si quiero que el application.properties tenga credenciales de usuario y contraseña, y quiero insertarlos desde consola para que el proyecto los tome. Gracias!
es probable que sea más accesible eso a traves de spring actuator
Buenos dias, amigo no me está leyendo las propiedades con @value, todo me lo trae null, puede existir alguna otra configuracion adicional o debo de agregar algo que no estoy teniendo en cuenta?
En principio no se necesita nada en especial pero claro las propiedades deben existir y estar correctamente cargadas en spring
hola una pregunta como puedo guardar los valores de un select option y utilizarlos en un If para mostrar registros especificos
Creo que la pregunta tiene que ver poco con el articulo 🙂 , depende mucho del framework de capa de presentación que se use:)
Hola, muchas gracias por el aporte, ¿como puedo tener mas de un archivo .properties ?
con @ConfigurationProperties sino recuerdo mal 🙂
Cecilio una pregunta como puedo hacer para que me tome los caracteres especiales como las tildes, veras tengo por ejemplo la propiedad apellidos=Calderón Tapia y cuando la imprime en consola obtengo Calder�n Tapia.
no lo he probado ,en principio prefiero no tener tildes en parámetros de configuracion
Amigo quiero felicitarte, es muy claro y conciso el post.
gracias
Consulta como configuro el acceso al archivo properties, cuando este lo quiero que este en un ruta aparte del servidor, osea fuera del proyecto
deberias pasar un property con la ruta del archivo con -D en el arranque de java y usar esa property para definir la ruta
Felicitarle por su gran trabajo y a la vez hacerle una consulta, Como se define en el archivo application. properties las variables nomre y apellido. Saludos
nombre=cecilio
apellidos=alvarez
Es así de sencillo 🙂
Caramelo Dios te bendiga usted por aqui ? jajajaj