
La configuración es una de las partes más importantes de cualquier aplicación, pues permite que se pueda configurar según el entorno de ejecución o el ambiente en el que se desplegará, por suerte Spring boot cuenta con el archivo application.properties, en el cual podemos guardar todos aquellos valores que pueden cambiar con el tiempo, lo que evita la mala práctica de crear código hardcode o código duro.
Pero la pregunta es, como podemos acceder a estar propiedades desde una aplicación, pues bien, gracias a la inyección de dependencias que caracteriza a Spring Boot, es posible inyectar cualquier propiedad mediante la anotación @Value, tal como se puede ver a c continuación:
@Configuration
public class ConverterConfig {
@Value("${path.to.prop.name }")
private String myProp;
}Y el archive application.properties quedaría de la siguiente forma:
path.to.prop.name=my valueEsto aplica exactamente igual cuando con un archivo application.yml:
path:
to:
prop:
name:my valueMediante esta técnica ya no necesitarás poner código duro nunca más.

Oscar como estas, vos sabes que no consigo hacerlo funcionar lo de la inyeccion.
Me esta faltando algo
@Configuration
public class MyProperties
{
@Value(“${spring.datasource.url}”)
private String url;
public String getUrl()
{
return url;
}
public void setUrl(String url)
{
this.url = url;
}
}
Como tiene el archivo application.properties?
Hola Sergio,
Resolviste? Tengo el mismo problema y no logro resolverlo.
Hola,
Creo que el problema viene de que la notación correcta para inyectar valores con la anotación @Value es @Component (para tratar la clase de configuración como un Bean que inyectar en otras clases).
Substituya @Configuration por @Component.
Después puede inyectar su clase en otra clase java en donde quiera utilizarla añadiendo la variable privada:
@Autowired
private MyProperties env;
Nota: He utilizado la inyección en la variable por simplificación pero es una práctica no recomendada puesto que complica la creación de test unitarios entre otros aspectos, para más info -> https://www.javacodegeeks.com/2019/02/field-setter-constructor-injection.html