刘光辉
5 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package jnpf.elnController;
 
import jnpf.database.util.NotTenantPluginHolder;
import jnpf.database.util.TenantDataSourceUtil;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
 
@Aspect
@Component
@Order(1)
public class ElnNoDataSourceBindAspect {
 
    @Around("execution(public * jnpf.elnController..*(..))"
            + " && (@within(jnpf.util.NoDataSourceBind)"
            + " || @annotation(jnpf.util.NoDataSourceBind))")
    public Object withoutDataSourceBinding(ProceedingJoinPoint joinPoint) throws Throwable {
        try {
            NotTenantPluginHolder.setNotSwitchAlwaysFlag();
            TenantDataSourceUtil.clearLocalTenantInfo();
            return joinPoint.proceed();
        } finally {
            NotTenantPluginHolder.clearNotSwitchAlwaysFlag();
        }
    }
}