项目使用的@DS动态数据源
方式一:
1. 获取当前线程的数据源信息
DynamicDataSourceContextHolder.peek() 方法可以用来获取当前线程正在使用的数据源名称。
2.动态数据源切换
如果需要在调试过程中切换数据源,可以使用以下代码:
DynamicDataSourceContextHolder.push("数据源名称");
方式二:
ApplicationContextProvider.getApplicationContext().getBean(DynamicRoutingDataSource.class).determineDataSource()
使用dynamicRoutingDataSource.determineDataSource()方法可以获取当前线程实际使用的数据源实例。
@Component public class ApplicationContextProvider implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) { ApplicationContextProvider.applicationContext = applicationContext; } /** * 获取ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 根据Bean名称获取Bean */ public static Object getBean(String name) { return applicationContext.getBean(name); } /** * 根据Bean类型获取Bean */ public static <T> T getBean(Class<T> clazz) { return applicationContext.getBean(clazz); } /** * 根据Bean名称和类型获取Bean */ public static <T> T getBean(String name, Class<T> clazz) { return applicationContext.getBean(name, clazz); } }