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:

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(#root[0]),其中 #target 引用了目标对象(example),#root[0] 引用了方法的第一个参数("John"),并使用 getValue 方法执行了 SpEL 表达式,得到了方法调用的结果。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bootstrap基础

(一)bootstrap初识 bootstrap由美国数学家Efron于20世界70年代创建。 bootstrap方法用于样本数较少时的数学统计和参数估计。其数学原理基于格里汶科定理。 格里汶科( G l i v e n k o )定理: \color{red}格里汶科&a…

React和umi搭建项目的操作步骤

​​​​​​一、react脚手架新建项目 (1.1)、命令行 前提:react ES2015,nodejs v8 npx create-react-app myReactName //2022年v16以下版本 myReactName(自定义项目名) react中文官网,快速上手:react中文官网 react框架,…

基于Linphone android sdk开发Android软话机

1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话(VOIP)系统,其主要如下。使用linphone,开发者可以在互联网上随意的通信,包括语音、视频、即时文本消息。linphone使用SIP协议&#…

CGAL的3D Alpha Shapes

假设我们给定一个二维或三维的点集S,我们希望得到类似“这些点形成的形状”的东西。这是一个相当模糊的概念,可能有许多可能的解释,阿尔法形状就是其中之一。阿尔法形状可用于从密集的无组织数据点集进行形状重建。事实上,阿尔法形…

Go和Java实现命令模式

Go和Java实现命令模式 下面通过一个烧烤的例子来说明命令模式的使用。 1、命令模式 命令模式是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调 用对象寻找可以处理该命令的合适的对象,并把该…

在 MyBatis 中<应该怎么写

在 MyBatis 中&#xff0c;< 符号在 XML 配置文件中是一个特殊字符&#xff0c;用于标记 XML 标签的开始。因此&#xff0c;如果你在 MyBatis 的 if 标签中直接使用 < 符号&#xff0c;它会被解析为 XML 标签的开始&#xff0c;从而导致解析错误。 为了避免这个问题&…

用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表) -- 自动生成

一、插件 Settings... 1.1 File -- Settings 1.2 Settings -- Plugins 1.2.1 搜索框&#xff0c;也可以直接搜索 1.3 Plugins -- 【输入 & 搜索】mybatis 1.3.1 插件不同功能介绍 1.3.2 翻译如下 1.4 选中 Update&#xff0c;更新下 1.4.1 更新中 1.4.2 Restart IDE 1…

C++ 类的析构函数和构造函数

构造函数 类的构造函数是类的一种特殊的成员函数&#xff0c;它会在每次创建类的新对象时执行。主要用来在创建对象时初始化对象即为对象成员变量赋初始值。 构造函数的名称与类的名称是完全相同的&#xff0c;并且不会返回任何类型&#xff0c;也不会返回 void。构造函数可用…

ARM GIC(一) cortex-A 处理器中断简介

对于ARM的处理器&#xff0c;中断给处理器提供了触觉&#xff0c;使处理器能够感知到外界的变化&#xff0c;从而实时的处理。本系列博文&#xff0c;是以ARM cortex-A系列处理器&#xff0c;来介绍ARM的soc中&#xff0c;中断的处理。 ARM cortex-A系列处理器&#xff0c;提供…

[node] Node.js的路由

[node] Node.js的路由 路由 & 路由解析路由信息的整合URL信息路由处理逻辑路由逻辑与URL信息的整合路由的使用 路由 & 路由解析 路由需要提供请求的 URL 和其他需要的 GET/POST 参数&#xff0c;随后路由需要根据这些数据来执行相应的代码。 因此&#xff0c;根据 HT…

Android 13 - Media框架(25)- OMXNodeInstance(二)

上一节我们了解了 OMXNodeInstance 的创建过程&#xff0c;以及 IOmx 服务和 OMXNodeInstance、OMX组件之间的联系。这一节我们将一起了解 ACodec 是如何通过 OMXNodeInstance 这个中间层进行端口定义设置&#xff0c;以及端口Buffer分配的。 OMXNodeInstance 的代码还是比较长…

Python之Django项目的功能配置

1.创建Django项目 进入项目管理目录&#xff0c;比如&#xff1a;D盘 执行命令&#xff1a;diango-admin startproject demo1 创建项目 如果提示diango命令不存在&#xff0c;搜索diango-admin程序的位置&#xff0c;然后加入到环境变量path中。 进入项目&#xff0c;cd demo…

CentOS 7 Tomcat服务的安装

前提 安装ava https://blog.csdn.net/qq_36940806/article/details/134945175?spm1001.2014.3001.5501 1. 下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gzps: 可选择自己需要的版本下载安装https://mirr…

【单调栈】LeetCode2334:元素值大于变化阈值的子数组

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 题目 给你一个整数数组 nums 和一个整数 threshold 。 找到长度为 k 的 nums 子数组&#xff0c;满足数组中 每个 元素都 大于 threshold / k 。 请你返回满足要求的 任意 子数组的 大小 。如果没有这…

记录Ubuntu20.04安装mujoco与安装mujoco_py并测试时提示Cython.Compiler.Errors.CompileError的解决方案

安装mujoco可以参考如下来链接&#xff1a; Ubuntu20.04安装mujoco&#xff1a; https://blog.csdn.net/qq_47997583/article/details/125400418 安装mujoco_py并测试时提示Cython.Compiler.Errors.CompileError&#xff1a; https://blog.csdn.net/m0_38122847/article/de…

Git 合并两个项目

前言 在 Git 中合并两个项目的代码需要一些步骤&#xff0c;尤其是如果这两个项目有不同的版本历史或者是独立的 Git 仓库。以下是一般的步骤&#xff1a; 克隆第一个项目&#xff1a; 在你的本地机器上克隆第一个项目的 Git 仓库。 git clone <URL_of_first_project>…

STM32CubeMX驱动ST7789

环境 1、单片机:STM32F103C8T6 2、开发平台&#xff1a;STM32CUBEMXkeil mdk 3、屏幕&#xff1a;ST7789&#xff0c;分辨率240*240 STM32配置 1、使用硬件SPI1驱动屏幕。配置如下&#xff1a; 2、屏幕控制引脚配置&#xff1a; 注意&#xff1a;只配置了DC,RST,CS这3个控…

使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理

背景 在上一篇文章中&#xff0c;我们已经了解到华为即将发布的鸿蒙操作系统纯血版本——鸿蒙 Next&#xff0c;以及各个互联网厂商开展鸿蒙应用开发的消息。其中&#xff0c;Taro作为一个重要的前端开发框架&#xff0c;也积极适配鸿蒙的新一代语言框架 —— ArkTS。 本文将…

Hive执行计划

Hive提供了explain命令来展示一个查询的执行计划&#xff0c;这个执行计划对于我们了解底层原理&#xff0c;Hive 调优&#xff0c;排查数据倾斜等很有帮助。 使用语法如下&#xff1a; explain query;在 hive cli 中输入以下命令(hive 2.3.7)&#xff1a; explain select s…

【Java之数据结构与算法】

选择排序 package Code01;public class Code01_SelectionSort {public static void selectionSort(int[] arr) {if(arrnull||arr.length<2) {return;}for(int i0;i<arr.length;i) {int minIndex i;for(int ji1;j<arr.length;j) {minIndex arr[minIndex] > arr[j…