`
JAVA凌
  • 浏览: 30870 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

spring3.0学习笔记三---SpEL表达式2

阅读更多
例一:使用符号

//evaluates to true
boolean trueValue=parser.parseExpression("2==2").getValue(Boolean.class);
//evaluates to false
boolean falseValue=parser.parseExpression("2<-5.0").getValue(Boolean.class);

//evaluates to true
boolean trueValue=parser.parseExpression("'black'<'block'").getValue(Boolean.class); //字符串的比较

例二:判断是否是类中的一个实例

//evaluates to false
boolean falseValue=parser.parseExpression("'xyz'  instanceofT(int)").getValue(Boolean.class);

例三:和正则表达式结合

//evaluates to true
boolean trueValue = parser.parseExpression("'5.00'matches'^-?\\d+\\.\\d{2})?$'").getValue(Boolean.class);

//evaluates to false
boolean falseValue = parser.parseExpression("'5.0067'matches'^-?\\d+(\\.\\d{2})?$'").getValue(Boolean.class);

例四:逻辑运算符

//--AND--
//evaluates to false
boolean falseValue=parser.parseExpression("true and false").getValue(Boolean.class);//取后者
//evaluates to true
String expression= "isMember('NikolaTesla')  and  isMember('MihajloPupin')";
boolean trueValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);
//--OR--
//evaluates to  true
boolean trueValue=parser.parseExpression("true  or   false").getValue(Boolean.class);
//evaluates  to  true
String  expression= "isMember('Nikola Tesla')  or  isMember('Albert Einstien')";
boolean trueValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);
//--NOT--
//evaluates to false
boolean falseValue=parser.parseExpression(" !true").getValue(Boolean.class);
//--AND  and  NOT--
String expression= "isMember('NikolaTesla') and !isMember('MihajloPupin')";
boolean falseValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);

例五:算术运算符

//Addition
int two=parser.parseExpression("1+1").getValue(Integer.class); //2
String testString=parser.parseExpression(" 'test'+'string' ").getValue(String.class); //'teststring'
//Subtraction
int four=parser.parseExpression("1-3").getValue(Integer.class); //4
double d=parser.parseExpression("1000.00-1e4").getValue(Double.class); //-9000
//Multiplication
int six=parser.parseExpression("-2*-3").getValue(Integer.class); //6
double twentyFour=parser.parseExpression("2.0*3e0*4").getValue(Double.class); //24.0
//Division
int minusTwo=parser.parseExpression("6/-3").getValue(Integer.class); //-2
double one=parser.parseExpression("8.0/4e0/2").getValue(Double.class); //1.0
//Modulus
int three=parser.parseExpression("7%4").getValue(Integer.class); //3
int one=parser.parseExpression("8/5%2").getValue(Integer.class); //1
//Operator precedence
int minusTwentyOne=parser.parseExpression("1+2-3*8").getValue(Integer.class); //-21

 

分享到:
评论

相关推荐

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    spring的学习笔记

    以上内容涵盖了Spring框架的关键知识点,从IoC和DI的使用,到AOP和资源管理,再到强大的SpEL表达式语言,这些都是理解和掌握Spring框架所必备的基础。通过深入学习这些内容,不仅有助于日常开发,也能为面试做好充分...

    Acegi学习笔记--Acegi详解实战Acegi实例

    3. **支持表达式**:Spring Security引入了基于SpEL的安全表达式,提供了更灵活的访问控制。 4. **模块化**:Spring Security分为多个模块,如Web安全、方法安全等,更易于定制和扩展。 通过学习Acegi,我们可以...

    Spring学习笔记(8)----属性注入的方式

    本篇学习笔记主要探讨了Spring中的属性注入方式,包括了传统的XML配置注入、注解式注入以及使用Java配置类的方式。 一、XML配置注入 在Spring早期版本中,XML配置文件是定义Bean及其依赖关系的主要方式。属性注入...

    spring学习笔记(三)

    【标题】"Spring学习笔记(三)"主要涵盖了Spring框架的核心概念和使用,特别是关于Spring的依赖注入(Dependency Injection,简称DI)以及AOP(面向切面编程)的应用。这篇笔记可能详细介绍了如何通过XML配置或者Java...

    spring3.x的读书笔记-1

    2. 引入了 Spring Expression Language (SpEL),一个强大的表达式语言,用于运行时查询和操作对象。 3. Spring JavaConfig 提供了通过 Java 类进行配置的选项,替代传统的 XML 配置。 4. OXM 功能的加入,用于对象和...

    spring学习笔记LBY.pdf

    ### Spring学习笔记知识点详解 #### 一、Spring学习模块概览 Spring框架作为一个全面而强大的企业级应用开发框架,其内部包含多个模块,这些模块分别针对不同的应用场景和技术领域进行了优化设计。了解这些模块有...

    spring security3笔记

    - **表达式式访问控制**:使用@PreAuthorize、@PostAuthorize等注解,配合SpEL(Spring Expression Language)表达式进行细粒度的访问控制。 6. **集成其他Spring模块** - **Spring MVC**:与Spring Web MVC无缝...

    Spring2.5_学习笔记.doc.zip

    总的来说,《Spring2.5 学习笔记》这份文档将带领读者深入了解Spring2.5的各种核心特性,包括注解驱动的配置、依赖注入的优化、面向切面编程的实现、数据库访问的便捷性、Web MVC的改进以及SpEL的运用。通过对这些...

    spring学习笔记(四)

    在本篇"Spring学习笔记(四)"中,我们将深入探讨Spring框架的核心特性和使用方法,尤其是围绕源码解析和工具应用这两个主题。Spring是Java领域中最广泛应用的轻量级框架,它提供了丰富的功能来简化企业级应用的开发,...

    spring学习笔记 私塾在线

    【Spring学习笔记 私塾在线】是一份综合性的学习资源,包含了从网上收集的各种Spring相关的教程和实战指导。这份笔记的目的是为学习者提供一个全面的Spring框架学习平台,通过集成多个主题,帮助用户深入理解和掌握...

    spring2.5_学习笔记

    《Spring 2.5 学习笔记》 在IT领域,Spring框架是Java企业级应用开发的首选框架,而Spring 2.5是其发展历史中的一个重要里程碑。本笔记将深入探讨Spring 2.5的核心特性,帮助读者理解并掌握这一版本的精髓。 一、...

    spring学习笔记

    ### Spring学习笔记:深入探索SpEL(Spring Expression Language) #### SpEL简介 SpEL,即Spring Expression Language(Spring表达式语言),是Spring框架提供的一种强大的表达式语言,用于在运行时查询和操作...

    spring-framework:spring-framework原始阅读笔记-spring源码阅读

    例如,我们可以使用SpEL表达式在运行时决定bean的属性值。此外,PropertyPlaceholderConfigurer和Environment抽象类是处理属性文件和环境变量的重要组件,它们帮助我们读取和替换配置文件中的占位符,使得配置更加...

    Spring Security tutorial 学习笔记(一)

    这篇教程的学习笔记将带你深入理解其核心概念和工作原理。首先,我们来概述 Spring Security 的基本架构和主要组件。 **1. ** **Spring Security 架构** Spring Security 的架构基于过滤器链,它拦截并处理应用...

    springsecurity3 学习笔记源码分析所得

    Spring Security 是一个强大的Java安全框架,用于...总的来说,Spring Security 3的学习笔记和源码分析对提升安全开发技能大有裨益,不仅可以加深理论理解,还能在实际项目中灵活运用,构建更加健壮、安全的应用系统。

    Spring学习笔记之二“属性注入”

    在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...

    spring笔记之helloworld所需要的jar包

    5. **spring-expression.jar**(Spring Expression Language - SpEL):SpEL是Spring提供的表达式语言,用于在运行时查询和操作对象图。在配置文件中,我们可以使用SpEL来动态地评估属性值。 6. **spring-web.jar**...

    spring4框架系列[ 2 ]

    在 "spring4框架系列[ 2 ]" 的代码笔记中,我们将深入探讨 Spring 4.x 版本的关键特性,以及如何在实际项目中应用它们。 1. **依赖注入(DI)** 依赖注入是 Spring 框架的核心特性之一,它允许我们通过外部容器管理...

    编程不良人的spring security笔记

    Spring Security 提供了一种表达式语言(SpEL,Spring Expression Language),用于在访问控制规则中表达复杂的条件。例如,`hasRole('ROLE_ADMIN')` 和 `hasPermission(#object, 'READ')` 分别表示用户是否具有管理...

Global site tag (gtag.js) - Google Analytics