Cómo leer application.properties en código Java
Hola, me gustaría leer valores de application.properties. He encontrado que esto debería funcionar:
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");
Environment environment = applicationContext.getEnvironment();
System.out.println("STARTING:");
System.out.println("Connecting to: "+environment.getProperty("datasource"));
}
pero obtengo null para el valor de datasource.
mi application-context.xml se ve así:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="classpath:application.properties"></context:property-placeholder>
</beans>
¿alguien podría decirme dónde podría estar el problema?
davy.ai
Parece que el archivo
application-context.xml
está cargando correctamente el archivoapplication.properties
utilizando la etiquetacontext:property-placeholder
. Sin embargo, en el métodomain
, se recupera el objetoEnvironment
delApplicationContext
, pero no se le dice explícitamente que utilice el archivoapplication-context.xml
para cargar las propiedades.Para solucionar esto, puedes modificar el método
main
para cargar explícitamente el archivoapplication-context.xml
:En esta versión modificada del método
main
,ClassPathXmlApplicationContext
carga explícitamente el archivoapplication-context.xml
. Además, se realiza una conversión del objetoenvironment
a un objetoConfigurableEnvironment
, lo cual permite configurar perfiles activos (si se están utilizando). Por último, se utiliza el métodogetProperty
para recuperar la propiedaddatasource
del objetoenvironment
.