医院废弃物信息化管理平台
“mitao”
2025-12-24 3763145f34d7706923d55edc32f5cfbc8bc08b92
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
29
30
31
32
33
34
35
36
37
38
package cn.besteam.common.util;
 
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.context.expression.MethodBasedEvaluationContext;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
 
import java.lang.reflect.Method;
 
/**
 * @author chenqilong
 * @since 2019-05-21
 */
public class SpringUtil {
 
    private static final ParameterNameDiscoverer NAME_DISCOVERER = new DefaultParameterNameDiscoverer();
 
    private static final ExpressionParser PARSER = new SpelExpressionParser();
 
    public static String getSpelValue(ProceedingJoinPoint joinPoint, String definitionKey) {
 
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        return getSpelValue(definitionKey, method, joinPoint.getArgs());
    }
 
    public static String getSpelValue(String definitionKey, Method method, Object[] parameterValues) {
 
        EvaluationContext context = new MethodBasedEvaluationContext(null, method, parameterValues, NAME_DISCOVERER);
        String val = PARSER.parseExpression(definitionKey).getValue(context).toString();
        return val;
    }
 
}