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