Spring Configuration file

Updated: 2009-03-07

Problem

Spring is managing the database connection of my application. I want to extract the parameters outside my applicationContext.xml file

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
<property name="url" value="jdbc:mysql://localhost/database" /> 
<property name="username" value="user"/> 
<property name="password" value="password"/> 
  </bean> 

Solution

Add the PropertyPlaceholderConfigurer bean to your ApplicationContext with the name of the file(s) containing the data.

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="location"> 
        <value>WEB-INF/data.properties</value> 
    </property> 
</bean> 

If you have more property files you can use the tag:

<property name="locations"> 
	<list> 
<value>data.properties</value> 
<value>...</value> 
</list> 
</property> 

The data.properties should be like this:

database.url= jdbc:mysql://localhost/CheckNames 
database.username=username 
database.password=password 

To use these properties in your applicationContext.xml file:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
<property name="url"><value>${database.url}</value></property> 
<property name="username"><value>${database.username}</value></property> 
<property name="password"> <value>${database.password}</value></property> 
  </bean> 

Spring reference


WebApp built by Marco using Java 21 - Hosted in Switzerland