Hoy
he tenido que pelearme con la configuración de Spring para poder
desplegar una aplicación que ataca a una base de datos en diversos
JBoss, con distintos esquemas de base de datos por usuario, así que
he echado a volar mi imaginación y en lugar de utilizar diversos
archivos de propiedades he decidido usar variables de entorno (que ya
están definidas por requisitos de aplicación) esto aparentemente
sencillo (al final lo era) se ha convertido en una odisea digna del
propio Ulises, bueno no he tardado 20 años con dar con la solución,
pero me ha costado un ratillo.
He
empezado por lo sencillo (PropertyPlaceHolderConfigurer) y he
pensado... "Pues si pongo el nombre de la vairiable de
entorno... esto tiene que tirar si o si..." PUES NO!!! Navegando
por los interneses he dado con varias páginas que me podían ayudar,
pero nada, al final he hecho un "popurrí" y la cosa ha
quedado tal que así:
- Configuración del PropertyPlaceHolderConfigurer de spring:
<bean
id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property
name="systemPropertiesModeName"
value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property
name="searchSystemEnvironment" value="true"/>
<property
name="locations">
<list>
<value>classpath:application.properties</value>
<value>classpath:resources.properties</value>
</list>
</property>
</bean>
- Configuración del DataSource
<bean
id="dataSourceConfiguracion"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property
name="driverClass"
value="oracle.jdbc.OracleDriver"
/>
<property
name="jdbcUrl"
value="${DB_URL}"
/>
<property
name="minPoolSize"
value="10"
/>
<property
name="maxPoolSize"
value="100"
/>
<property
name="initialPoolSize"
value="10"
/>
<property
name="idleConnectionTestPeriod"
value="30000"
/>
<property
name="testConnectionOnCheckin"
value="true"
/>
<property
name="preferredTestQuery"
value="SELECT 1 FROM DUAL"
/>
<property
name="user"
value="${DB_USR}"
/>
<property
name="password"
value="${DB_PWD}"
/>
</bean>
En
esta configuración DB_URL, DB_USR y DB_PWD están definidas como
variables de entorno a nivel de usuario.
Espero
que os sirva de ayuda.
Un
saludo y a disfrutar!
