2011-04-08 25 views
12

tengo la siguiente configuración en mi applicationContext.xml:primavera - Recuperar el valor del archivo de propiedades

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

Ahora, en mi clase java, ¿cómo se puede leer que los valores de los app.properties de archivos?

Respuesta

9

Actualmente, PropertyPlaceholderConfigurer es útil para insertar valores al contexto de primavera utilizando propiedades.

Ejemplo definición de contexto XML:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName"><value>${driver}</value></property> 
    <property name="url"><value>jdbc:${dbname}</value></property> 
</bean>` 

Ejemplo de archivo de propiedades:

driver=com.mysql.jdbc.Driver 
dbname=mysql:mydb 

O puede crear frijol como

<bean name="myBean" value="${some.property.key}" /> 

y luego inyectar este frijol en su clase

+1

Sí, puede agregar ' Marcin

+1

¿Cómo puedo obtener el valor de la propiedad de 'PropertyPlaceholderConfigurer'? No encontré nada útil en la documentación. – Betlista

24

Con Spring 3.0 puede usar la anotación @Value.

@Component 
class MyComponent { 

    @Value("${valueKey}") 
    private String valueFromPropertyFile; 
} 
+0

Gracias, estoy pensando en una solución donde podríamos recuperar los valores de ClassPathApplicationContext (sin usar anotaciones). ¿Es posible asignar un "id" al bean PropertyPlaceHolderConfigurer y luego recuperar los valores del bean? –

+0

@ver la respuesta de Marcin – Ralph

Cuestiones relacionadas