package org.dayatang.dsrouter.datasource.examples; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import java.sql.Connection; import java.sql.SQLException; public class CustomerRoutingDataSource extends AbstractRoutingDataSource { private static final Logger logger = LoggerFactory .getLogger(CustomerRoutingDataSource.class); @Override protected Object determineCurrentLookupKey() { return CustomerContextHolder.getCustomerType(); } public Connection getConnection() throws SQLException { Connection conn = determineTargetDataSource().getConnection(); if (logger.isDebugEnabled()) { System.err.println(conn.getClass()); //当使用c3p0的时候 不能在此处调用conn.getMetaData()方法 否则读写分离失效 } return conn; } }