首页>代码>ssm网站后台管理系统Espread,基于Spring+SpringMVC+Mybatis+Shiro+Quartz+Maven+Easyui技术>/espread/src/main/java/com/espread/common/aspect/DataSourceAspect.java
package com.espread.common.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import com.espread.common.annotation.DataSourceChange;
import com.espread.common.datasource.DynamicDataSource;
import com.espread.common.exception.DataSourceAspectException;

/**
 * 动态数据源切换
 * @author itdragons 2016-9-20 15:47:33
 * {@link com.espread.common.annotation.DataSourceChange} -> 注解方法
 */
@Aspect
@Component
public class DataSourceAspect {
    private static final Logger LOGGER = LoggerFactory.getLogger(DataSourceAspect.class);
    
    @Around("@annotation(dataSourceChange)")
    public Object doAround(ProceedingJoinPoint pjp, DataSourceChange dataSourceChange) {
        Object retVal = null;
        boolean selectedDataSource = false;
        try {
        	selectedDataSource = true;
        	DynamicDataSource.setDataSource(dataSourceChange.value());
            retVal = pjp.proceed();
        } catch (Throwable e) {
            LOGGER.warn("数据源切换错误", e);
            throw new DataSourceAspectException("数据源切换错误", e);
        } finally {
        	if (selectedDataSource) {
        		//重置数据源
                DynamicDataSource.resetDataSource();
            }
        }
        return retVal;
    }
}
最近下载更多
educationAAA  LV11 8月10日
hefeng  LV2 5月27日
xuweiwowzy  LV5 1月14日
xierhui  LV6 2022年9月20日
Hsy605  LV9 2022年6月22日
cxdxfx12  LV14 2022年6月21日
Jason137  LV8 2022年3月15日
Yee.  LV5 2022年1月22日
yxhxj2006  LV7 2021年9月8日
sunlea  LV20 2021年8月15日
最近浏览更多
552124 11月16日
暂无贡献等级
King_wsk  LV18 11月2日
bluerstar  LV1 10月23日
TY0165  LV20 6月24日
hefeng  LV2 5月27日
李俊雄  LV3 5月8日
educationAAA  LV11 4月26日
woldxy  LV12 4月1日
 LV7 3月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友