com.yqjr.framework.component.datasource.FrameworkDataSource Maven / Gradle / Ivy
/**
*
*/
package com.yqjr.framework.component.datasource;
import java.beans.PropertyVetoException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import org.springframework.util.Assert;
import com.yqjr.framework.component.config.Configuration;
import com.yqjr.framework.component.context.ThreadContext;
import com.yqjr.framework.component.datasource.RouteInfo.RWMode;
import com.yqjr.framework.datatype.BizzException;
import com.yqjr.framework.utils.Constants;
/**
* ClassName: FrameworkDataSource
* Description: 框架数据源,根据框架参数配置实现如下功能:
* 1-数据源获取方式:local/jndi
* 2-数据源类型:多数据源/单一数据源
* 3-数据源路由(读写分离)
* Create By: admin
* Create Date: 2017年4月18日 上午11:00:08
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/
public class FrameworkDataSource extends AbstractRoutingDataSource implements InitializingBean {
/**
* 数据源集合
*/
private List dataSources;
/**
* @return the dataSources
*/
public List getDataSources() {
return dataSources;
}
/**
* @param dataSources
* the dataSources to set
*/
public void setDataSources(List dataSources) {
this.dataSources = dataSources;
}
/**
* 写节点组
*/
private Map> writeGroupMap = null;
/**
* 读节点映射
*/
private Map> readGroupMap = null;
/**
* targetDataSources
*/
private Map