动态多数据源引起C3p0线程过多问题

1.采用在applicationContext.xml配置主库数据源,应用启动时从主库表查询并创建其他数据源,并将数据源添加到Map,最后将map存入上下文application中。

2.切换数据源采用AbstractRoutingDataSource类,在重写方法内查看类AbstractRoutingDataSource下map成员变量targetDataSources是否含选定的数据源,包含时返回相应key值确定数据源;否则将存在application内相应的数据源以键值对(即,key-value)添加到targetDataSources同时更新Spring,最后确定所选数据源完成操作。

3.使用VisualVM进行查看应用C3P0线程数

注:部分代码如图所示

动态多数据源引起C3p0线程过多问题_第1张图片


你可能感兴趣的:(动态多数据源引起C3p0线程过多问题)