zjh
2025-04-08 983d95bdcbb273b4a78efd0058a2a35141be1b51
ltkj-framework/src/main/java/com/ltkj/framework/aspectj/DataSourceAspect.java
@@ -36,17 +36,29 @@
    @Around("dsPointCut()")
    public Object around(ProceedingJoinPoint point) throws Throwable {
        String key = DataSourceContextHolder.getDataSourceKey();
        logger.info("执行之前");
        logger.info("DataSourceContextHolder ->{}",key);
        logger.info("DynamicDataSourceContextHolder ->{}",DynamicDataSourceContextHolder.getDataSourceType());
        DataSource dataSource = getDataSource(point);
        if (StringUtils.isNotNull(dataSource)) {
            DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name());
            DataSourceContextHolder.setDataSourceKey(dataSource.value().name());
        }
        try {
            return point.proceed();
        } finally {
            logger.info("执行之后");
            logger.info("DataSourceContextHolder ->{}",key);
            logger.info("DynamicDataSourceContextHolder ->{}",DynamicDataSourceContextHolder.getDataSourceType());
            // 销毁数据源 在执行方法之后
            DataSourceContextHolder.clear();
            DataSourceContextHolder.setDataSourceKey(key);
            DynamicDataSourceContextHolder.setDataSourceType(key);
            logger.info("执行之后 clear之后");
            logger.info("DataSourceContextHolder ->{}",key);
            logger.info("DynamicDataSourceContextHolder ->{}",DynamicDataSourceContextHolder.getDataSourceType());
        }
    }