public class DatabaseContextHolder {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static void setCustomerType(String customerType) {
contextHolder.set(customerType);
}
public static String getCustomerType() {
return contextHolder.get();
}
public static void clearCustomerType() {
contextHolder.remove();
}
}
@Component
public class DataSourceInterceptor {
public void setdataSourceMysql(JoinPoint jp) {
DatabaseContextHolder.setCustomerType("dataSource_mysql");
}
public void setdataSourceOracle(JoinPoint jp) {
DatabaseContextHolder.setCustomerType("dataSource_oracle");
}
public class DynamicDataSource extends AbstractRoutingDataSource{
@Override
protected Object determineCurrentLookupKey() {
return DatabaseContextHolder.getCustomerType();
}
}
public class WebServiceCableImpl implements IWebServiceCable {
@Autowired
private IService service;
public String Test(String qtr) {
//DatabaseContextHolder.setCustomerType("dataSource_oracle");
DatabaseContextHolder.setCustomerType("dataSource_mysql");
service.xxx();
}
}