首页 > 其他分享 >Spring小技巧--计算表达式的值

Spring小技巧--计算表达式的值

时间:2023-09-13 15:22:34浏览次数:40  
标签:parpser String -- Spring exp new 表达式

平时工作中经常要用到表达式值的计算问题,Spring框架中提供了Spring Expression Language(简称 SpEL)机制,可以很方便快捷的实现表达式值的计算;

SpEL机制需要引入Spring-expression包。下面列举其应用的两个小Demo;

1、数值计算:

 String expressionStr = "19 + 26";
 ExpressionParser parpser = new SpelExpressionParser();
 Expression exp = parpser.parseExpression(expressionStr);
 System.out.println(exp.getValue(String.class));

2、表达式值计算:

1 ExpressionParser parpser = new SpelExpressionParser();
2  EvaluationContext context = new StandardEvaluationContext();
3  context.setVariable("user", "bill gates");
4  ​
5  Expression exp = parpser.parseExpression("Hello, {{#user}}", new TemplateParserContext("{{", "}}"));
6  System.out.println(exp.getValue(context, String.class));

3、参考资料:

https://blog.csdn.net/f641385712/article/details/90812967

 

标签:parpser,String,--,Spring,exp,new,表达式
From: https://www.cnblogs.com/laoxia/p/17699786.html

相关文章

  • call/apply和 bind
    call接受多个参数,第一个参数表示this的指向,后面的多个参数都是传参functionperson(name,age){ console.log(`mynameis${name}ageis${age}`);} person.call(this,'大海',18);apply接受两个参数,第一个参数表示this的指向,第二个参数为数组functionperson(na......
  • 单例模式
    面向对象编程中,单例模式是一个经常被讨论的话题。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一种全局访问点来获取该实例。在本篇博客中,我们将深入探讨单例模式的重要概念、实现方式、以及何时使用它。什么是单例模式?单例模式是一种确保在整个应用程序中......
  • jvm-故障排查hs_pidxx-log日志文件
    概述##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#Nativememoryallocation(mmap)failedtomap12288bytesforcommittingreservedmemory.#Possiblereasons:#ThesystemisoutofphysicalRAMorswapspace#In32......
  • 09 类加载的内存分析
    packageannotate;publicclassTest09{publicstaticvoidmain(String[]args){System.out.println(newA().a);}}classA{static{a=300;}staticinta=100;}......
  • pyinstaller 报错ImportError: No module named _bootlocale
    生成环境的安装包,执行如下命令会有报错:pyinstaller-wF-pvenv310/Scripts-pvenv310/Lib/site-packages--add-data"./fish.jpg:."--add-data"./kb.ini:."-ifish.ico-nprogram_namemain.py328INFO:PyInstaller:3.6328INFO:Python:3.10.11343INFO:......
  • Java21虚拟线程的注意点
    Java21虚拟线程的注意点ThreadLocal能继续用么?Java开发组设计虚拟线程的时候,原本想去掉对ThreadLocal的支持。但由于使用它的库太多,并且很多为了传参才用,并不是缓存,所以就保持了支持。像隐式传参的这种场景,继续用也没事儿,就是性能有所损耗。(不会影响GC,生命周期随着虚拟线程......
  • Understanding UML in seconds
    UML是一种分析设计语言,也就是一种建模语言。UML结构解析UML其结构主要包括以下几个部分:视图(View)多个图形组成的集合;图(Diagram)图的种类有13种图,但常用的也就两种(1.需求用例图,2.开发类图);模型元素(ModelElement)如类、对象、消息以及这些概念之间的关系,如关联关系、依赖关系......
  • 自定义镜像-镜像结构
       ......
  • 特斯拉Dojo超算:AI训练平台的自动驾驶与通用人工智能之关键
    特斯拉公开Dojo超算架构细节,AI训练算力平台成为其自动驾驶与通用人工智能布局的关键一环在近日举行的HotChips34会议上,特斯拉披露了其自主研发的AI超算Dojo的详细信息。Dojo是一个可定制的超级计算机,从芯片到系统全部由特斯拉自主设计,主要目标是高效运行各种机器学习训练算法......
  • dbv检查数据文件是否有坏块
     环境:OS:Centos7DB:11.2.0.4 1.ASM磁盘需要带上userid参数[oracle@rac01~]$dbvfile='+DATA/slnngk/datafile/users.259.1146388217'userid=oracle/oracleDBVERIFY:Release11.2.0.4.0-ProductiononWedSep1314:49:152023Copyright(c)1982,2011,O......