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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta