cambiar dinámicamente la fuente de datos Spring
Tengo una aplicación Spring, quiero cambiar el origen de datos dinámicamente, es decir. cuando ingrese una URL de DS, los Spring beans y todas las dependencias se actualizarán automáticamente. Sé que esto es algo extraño, pero de todos modos quiero lograrlo. Mi configuración de primavera de la siguiente manera:
<bean id="majorDataSource" class="org.postgresql.ds.PGSimpleDataSource">
<property name="serverName" value="${jdbc.serverName}" />
<property name="portNumber" value="${jdbc.portNumber}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="databaseName" value="${jdbc.databaseName}" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="majorDataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="majorDataSource"/>
<property name="configLocation" value="classpath:sqlmap-config.xml"/>
</bean>
Las preguntas son:
La URL de JDBC se almacena en propiedades, que podrían modificarse en tiempo de ejecución.
Una vez que se cambia la URL, debo volver a crear la fuente de datos y tal vez los objetos dependientes. No pude averiguar cómo hacerlo con elegancia en la primavera?
Sabía que Spring sí podría enrutar dinámicamente el origen de datos en base a una clave, pero la URL del origen de datos está predefinida en Spring y no cambiará el tiempo de ejecución. No es mi caso.