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());
}
}
}
}
}