场景如下: 
spring中配置多个数据源如A,B,登录的时候,切换成A数据源读取用户,权限等数据,读完后立马切换到B数据源,进行普通操作(也就是说,用户数据都是放在A数据源中) 问题来了:当并发高的时候,会不会出现有人登录数据源切换到A了,然后其他用户在普通操作时,找不到B数据源中的表呢? 
通俗的说就是出现抢数据源的问题!!! 
请教大神的解答。 
配置如下: 
<!-- A数据源 -->
<bean id="bg_dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/A?useUnicode=true&amp;characterEncoding=utf-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
<!-- 初始化连接 -->
<property name="initialSize">
<value>5</value>
</property>
<!-- 最大连接数 -->
<property name="maxActive" value="1000" />
<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
<property name="maxWait" value="6000" />
<!-- 最大空闲连接 -->
<property name="maxIdle" value="30" />
<!-- 最小空闲连接 -->
<property name="minIdle" value="5" />
<!-- 连接不上时,将再次进行连接 -->
<property name="testWhileIdle" value="true" />
<property name="minEvictableIdleTimeMillis" value="20000" />
<property name="timeBetweenEvictionRunsMillis" value="20000" />
</bean>

<!-- B数据源 -->
<bean id="app_dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/B?useUnicode=true&amp;characterEncoding=utf-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
<!-- 初始化连接 -->
<property name="initialSize">
<value>5</value>
</property>
<!-- 最大连接数 -->
<property name="maxActive" value="1000" />
<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
<property name="maxWait" value="6000" />
<!-- 最大空闲连接 -->
<property name="maxIdle" value="30" />
<!-- 最小空闲连接 -->
<property name="minIdle" value="5" />
<!-- 连接不上时,将再次进行连接 -->
<property name="testWhileIdle" value="true" />
<property name="minEvictableIdleTimeMillis" value="20000" />
<property name="timeBetweenEvictionRunsMillis" value="20000" />
</bean>

<bean id="dataSource" class="com.dsp.core.util.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="app_dataSource" value-ref="app_dataSource" />
<entry key="bg_dataSource" value-ref="bg_dataSource" />
</map>
</property>
<property name="defaultTargetDataSource" ref="app_dataSource" />
</bean>
springmysql数据源