删除 EmoneyRequestConfig 和 ProxyConfig 设置,改为数据库(SQLite)配置。默认配置的设置和删除逻辑由
SQLite 触发器配置。
This commit is contained in:
@@ -8,9 +8,13 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import quant.rich.emoney.annotation.LockByCaller;
|
||||
import quant.rich.emoney.util.CallerLockUtil;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
@@ -20,7 +24,7 @@ public class CallerLockAspect {
|
||||
|
||||
private final SpelExpressionParser parser = new SpelExpressionParser();
|
||||
|
||||
@Around("@annotation(me.qwq.emoney.annotation.LockByCaller)")
|
||||
@Around("@annotation(quant.rich.emoney.component.CallerLockAspect.LockByCaller)")
|
||||
public Object around(ProceedingJoinPoint pjp) throws Throwable {
|
||||
MethodSignature signature = (MethodSignature) pjp.getSignature();
|
||||
Method method = signature.getMethod();
|
||||
@@ -52,4 +56,25 @@ public class CallerLockAspect {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在方法上添加此注解,可针对调用方加锁,即:<br>
|
||||
* 调用方法为 A 的,多次从 A 调用则加锁,从 B 调用时不受影响<br>
|
||||
* 需要开启 AOP:在任意配置类上增加注解:<i><code>@EnableAspectJAutoProxy</code></i>
|
||||
* @see CallerLockAspect
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public static @interface LockByCaller {
|
||||
/**
|
||||
* 可选参数,用于 SpEL 表达式获取 key
|
||||
* 例如:<ul>
|
||||
* <li>@LockByCaller(key = "#userId")</li>
|
||||
* <li>@LockByCaller(key = "#userId + ':' + #userName")</li>
|
||||
* </ul>
|
||||
* 当不指定时,不校验参数,单纯校验 Caller
|
||||
*/
|
||||
String key() default "";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user