package com.gxx.record.core; import org.aspectj.lang.JoinPoint; import org.springframework.stereotype.Component; /** *
*
Title:
*
* none *
*
Description:数据源切面拦截器
*
*

none *

*
* * @author Gxx * @version 1.0, 2016年1月12日 * @since record * */ @Component public class DataSourceInterceptor { /** * 设置数据源KEy * @param jp */ public void setDataSource(JoinPoint jp) { /** * 清空数据源KEY */ DatabaseContextHolder.clearCustomerType(); /** * 这里不知道为啥,使用注册方式注解方法或者入参,这里取不到注解,才改成入参送指定枚举的方式 */ for(Object param : jp.getArgs()){ if(param instanceof Datasource){ Datasource datasource = (Datasource)param; if(Datasource.MASTER.name().equals(datasource.name())){ DatabaseContextHolder.setCustomerType(Datasource.MASTER.name()); } else if(Datasource.SLAVE.name().equals(datasource.name())){ DatabaseContextHolder.setCustomerType(Datasource.SLAVE.name()); } } } } }