package com.app.mvc.datasource; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import java.sql.Connection; import java.sql.SQLException; /** * 动态数据源 * Created by jimin on 16/03/22. */ @Slf4j public class DynamicDataSource extends AbstractRoutingDataSource { protected Object determineCurrentLookupKey() { return DataSourceKeyHolder.getCurrentKey(); } @Override public Connection getConnection() throws SQLException { Connection connection = super.getConnection(); if (DataSourceKeyHolder.getCurrentKey() != null) { log.info("Datasource route to {}, key={}", connection, DataSourceKeyHolder.getCurrentKey()); } return connection; } }