SpringIOC之MethodBasedEvaluationContext

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用ChatGPT,微信支付,扫码加群

点击这里预览

🍅开源项目免费哦 (有vue2与vue3版本):击这里克隆或者下载 🍅

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!!

MethodBasedEvaluationContext 是 Spring Framework 中的一个类,用于在 SpEL(Spring Expression Language)表达式中评估方法调用。它允许你在表达式中引用和调用目标对象的方法,以及在表达式中使用方法参数和返回值。

通常情况下,MethodBasedEvaluationContext 被用于在 SpEL 表达式中处理方法调用的场景,例如在使用 Spring AOP 的切面中,或者在编写动态查询语言(DSL)解析器时。

以下是一个简单的示例,演示如何使用 MethodBasedEvaluationContext:

java 复制代码
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.MethodBasedEvaluationContext;

public class MethodEvaluationExample {

    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }

    public static void main(String[] args) throws NoSuchMethodException {
        MethodEvaluationExample example = new MethodEvaluationExample();
        SpelExpressionParser parser = new SpelExpressionParser();
        EvaluationContext context = new MethodBasedEvaluationContext(example, example.getClass().getMethod("sayHello", String.class), new Object[]{"John"});

        Expression expression = parser.parseExpression("#target.sayHello(#root[0])");
        String result = expression.getValue(context, String.class);
        System.out.println(result); // 输出:Hello, John!
    }
}

在上述示例中,我们创建了一个 MethodEvaluationExample 类,其中包含一个 sayHello 方法。然后,我们使用 SpelExpressionParser 创建一个 SpEL 表达式,然后创建了一个 MethodBasedEvaluationContext 上下文,将目标对象(example)、要调用的方法(sayHello)以及方法的参数("John")传递给上下文。

最后,我们使用表达式 #target.sayHello(#root0),其中 #target 引用了目标对象(example),#root0 引用了方法的第一个参数("John"),并使用 getValue 方法执行了 SpEL 表达式,得到了方法调用的结果。

MethodBasedEvaluationContext 允许你在 SpEL 表达式中处理方法调用,可以用于编写复杂的动态表达式,例如在动态查询或条件化配置中。这在 Spring AOP、自定义注解处理等方面都非常有用。

相关推荐
AC赳赳老秦13 分钟前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
钱栈up18 分钟前
mvn compile 卡死在 javac 阶段:一次类型不匹配的排查与修复
java·开发语言
吠品2 小时前
CSS图片模糊过渡:一个transition加filter就够
java·数据库·notepad++
步行cgn2 小时前
Spring 全注解开发详解
java·后端·spring
长河3 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法
java·jvm·算法
code2cat3 小时前
Java进阶篇之LongAdder:把统计更新分散,再读取总和
java·并发编程·原子类·longadder
凯哥Java3 小时前
写代码怎么避免逻辑漏洞?
java·开发语言·人工智能·自动化
Ivanqhz3 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库
BD_Marathon4 小时前
消息对象中字段的说明
java·前端·python
zlpzlpzyd4 小时前
nacos的openapi地址
java