final InvocationHandler invocationHandler = Proxy.getInvocationHandler(mapper);
final Field advisedField = Class.forName("org.springframework.aop.framework.JdkDynamicAopProxy").getDeclaredField("advised");
advisedField.setAccessible(true);
final AdvisedSupport advisedSupport = (AdvisedSupport) advisedField.get(invocationHandler);
final Proxy proxy = (Proxy) advisedSupport.getTargetSource().getTarget();
final Field hField = Proxy.class.getDeclaredField("h");
hField.setAccessible(true);
final MapperProxy mapperProxy = (MapperProxy) hField.get(proxy);
final Field sqlSessionField = MapperProxy.class.getDeclaredField("sqlSession");
sqlSessionField.setAccessible(true);
final SqlSessionTemplate sqlSession = (SqlSessionTemplate) sqlSessionField.get(mapperProxy);
final DataSource dataSource = sqlSession.getSqlSessionFactory().getConfiguration().getEnvironment().getDataSource();
final Method cu
如何打印日志判断spring的某个方法当前事务的dataSource和mybatis的dataSource是否一致
最新推荐文章于 2023-06-21 16:58:09 发布
本文介绍如何在Java后端开发中,通过打印日志来判断Spring管理的方法与MyBatis使用的数据源是否相同,确保事务操作的一致性。
摘要由CSDN通过智能技术生成