29 lines
1.0 KiB
Plaintext
29 lines
1.0 KiB
Plaintext
package com.surfbird.common.annotation;
|
|
|
|
import org.aspectj.lang.ProceedingJoinPoint;
|
|
import org.aspectj.lang.annotation.Around;
|
|
import org.aspectj.lang.annotation.Aspect;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import com.surfbird.common.service.SqlServerService;
|
|
import com.surfbird.common.service.SurfbirdService;
|
|
import com.surfbird.util.Global;
|
|
import com.surfbird.util.MultipleDataSource;
|
|
|
|
@Aspect
|
|
@Component
|
|
public class MultipleDataSourceAspectAdvice {
|
|
//@Around("execution(* com.surfbird..*.*(..))")
|
|
@Around("execution(* com.surfbird..*Service.*(..))")
|
|
public Object doAround(ProceedingJoinPoint jp) throws Throwable {
|
|
if (jp.getTarget() instanceof SurfbirdService) {
|
|
MultipleDataSource.setDataSourceKey(Global.DATA_SOURCE_MYSQL);
|
|
} else if (jp.getTarget() instanceof SqlServerService) {
|
|
MultipleDataSource.setDataSourceKey(Global.DATA_SOURCE_SQLSERVER);
|
|
} else {
|
|
MultipleDataSource.removeDataSourceKey();
|
|
}
|
|
return jp.proceed();
|
|
}
|
|
}
|