Saltar al contenido

¿Cómo leer el archivo de propiedades en el proyecto de primavera?

Solución:

Puede crear un contexto de aplicación basado en XML como:

ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/appContext.xml");

si el archivo xml se encuentra en su ruta de clases. Alternativamente, puede usar un archivo en el sistema de archivos:

ApplicationContext ctx = new FileSystemXmlApplicationContext("conf/appContext.xml");

Hay más información disponible en los documentos de referencia de Spring. También debe registrar un gancho de cierre para garantizar un cierre correcto:

 ctx.registerShutdownHook();

A continuación, puede usar PropertyPlaceHolderConfigurer para extraer las propiedades de un archivo ‘.properties’ e inyectarlas en sus beans:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations" value="classpath:com/foo/jdbc.properties"/>
</bean>

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

Por último, si prefiere una configuración basada en anotaciones, puede utilizar la @Value anotación para inyectar propiedades en sus frijoles:

@Component
public class SomeBean {

    @Value("${jdbc.url}") 
    private String jdbcUrl;
}

A partir de Spring 4, puede usar la anotación @PropertySource en un Spring @Configuration clase:

@Configuration
@PropertySource("application.properties")
public class ApplicationConfig {

    // more config ...
}

Si desea tener su configuración fuera de su classpath, puede usar el file: prefijo:

@PropertySource("file:/path/to/application.properties")

Alternativamente, puede utilizar una variable de entorno para definir el archivo

@PropertySource("file:${APP_PROPERTIES}")

Dónde APP_PROPERTIES es una variable de entorno que tiene el valor de la ubicación del archivo de propiedades, p. ej. /path/to/application.properties.

Lea la publicación de mi blog Spring @PropertySource para obtener más información sobre @PropertySource, su uso, cómo se pueden anular los valores de propiedad y cómo se pueden especificar las fuentes de propiedad opcionales.

No tienes que usar Spring. Puede leer con Java simple como este:

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName));
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *