package com.thhy.general.config.mysql; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class DynamicDataSource extends AbstractRoutingDataSource { private static final ThreadLocal contextHolder = new ThreadLocal<>(); @Override protected Object determineCurrentLookupKey() { return contextHolder.get(); } public static void setDataSource(String name) { contextHolder.set(name); } // 在 finally 中及时 remove public static void clearDataSource() { contextHolder.remove(); } }