Spring表达式语言SpEL使用方法详细介绍?
- 内容介绍
- 文章标签
- 相关推荐
本文共计997个文字,预计阅读时间需要4分钟。
这篇文章主要介绍了Spring表达式语言(SpEL)的用法,通过示例代码详细阐述了其非详细特性。对于想要学习或工作的朋友来说,这是一份具有参考价值的资料。以下是对SpEL的简要介绍:
SpEL(Spring Expression Language)是Spring框架提供的一种表达式语言,用于在运行时动态地访问和操作对象属性、方法以及执行运算。以下是SpEL的一些基本用法:
1. 访问对象属性:javaObject result=expression.evaluate(targetObject.propertyName);
2. 调用对象方法:javaObject result=expression.evaluate(targetObject.methodName(args));
3. 执行运算:javaObject result=expression.evaluate(1 + 2);
SpEL在Spring框架中应用广泛,如Spring MVC、Spring Data等。对于想要学习或工作的朋友来说,掌握SpEL具有一定的参考价值。需要的伙伴可以参考以下资料:
(1)Spring官方文档:[https://docs.spring.io/spring-framework/docs/current/reference//core.#expression-language](https://docs.spring.io/spring-framework/docs/current/reference//core.#expression-language)
(2)Spring Expression Language Tutorial:[https://www.tutorialspoint.com/spring/spring_expression_language.htm](https://www.tutorialspoint.com/spring/spring_expression_language.htm)
(3)Java SpEL Tutorial:[https://www.java67.com/2016/01/spring-expression-language-tutorial.](https://www.java67.com/2016/01/spring-expression-language-tutorial.)
希望这些资料能对您有所帮助。
这篇文章主要介绍了spring表达式语言SpEL用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
(1)spring表达式语言是一个支持运行时查询和操作对象图得我强大表达式语言。
(2)语言类似于EL:SpEL使用#{...}作为定界符。所有在大括号中的字符串均被认为是SpEL。
(3)SpEL为bean的属性进行动态赋值提供了便利。
(4)通过SpEL可以实现:
- 通过Bean的id对Bean进行引用
- 调用方法及引用对象的属性
- 计算表达式的值
- 正则表达式匹配
字面量的表示:
- 整型:#{5}
- 小数:#{3.45}
- 科学计数法:#[1e4]
- 字符串:可以使用单引号或双引号早味字符串的定界符:#{'tom'},#{"tom"}
- 布尔值:#{false}
SpEL支持的运算符号:+ - * / % ^ < > == <= >= lt gt eq le ge and or not | (?:) if-else 正则表达式等等
调用静态属性和方法:通过T()
以下代码均忽略类中的getter、setter和to_string方法。
Car.java
package com.gong.spring.beans.spel; public class Car { public Car() { } public Car(String name) { this.name = name; } private String name; //轮胎周长 private double tyrePerimeter; private double price;}
Address.java
package com.gong.spring.beans.spel; public class Address { private String city; private String street; }
Student.java
package com.gong.spring.beans.spel; public class Student { private String name; private int age; private double score; private String city; private String info; private Car car; private Address address; }
beans-spel.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:p="www.springframework.org/schema/p" xsi:schemaLocation="www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="car" class="com.gong.spring.beans.spel.Car" p:name="baoma" p:tyrePerimeter="#{T(java.lang.Math).PI*80}"></bean> <bean id="address" class="com.gong.spring.beans.spel.Address" p:city="武汉" p:street="#{'络南街道'}"></bean> <bean id="student" class="com.gong.spring.beans.spel.Student" p:name="tom" p:age="#{12}" p:score="#{99.00}"> <!-- 使用spel引用其它的bean --> <property name="car" value="#{car}"></property> <!-- 使用spel引用其它bean的属性 --> <property name="city" value="#{address.city}"></property> <!-- 使用spel运算符 ,进行动态赋值--> <property name="info" value="#{car.price >300000 ? '有钱' : '没钱'}"></property> </bean> </beans>
Main.java
package com.gong.spring.beans.spel; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { //1.创建spring的IOC容器对象 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-spel.xml"); //2.从容器中获取Bean实例 Student student = (Student) ctx.getBean("student"); System.out.println(student.toString()); } }
部分输出:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计997个文字,预计阅读时间需要4分钟。
这篇文章主要介绍了Spring表达式语言(SpEL)的用法,通过示例代码详细阐述了其非详细特性。对于想要学习或工作的朋友来说,这是一份具有参考价值的资料。以下是对SpEL的简要介绍:
SpEL(Spring Expression Language)是Spring框架提供的一种表达式语言,用于在运行时动态地访问和操作对象属性、方法以及执行运算。以下是SpEL的一些基本用法:
1. 访问对象属性:javaObject result=expression.evaluate(targetObject.propertyName);
2. 调用对象方法:javaObject result=expression.evaluate(targetObject.methodName(args));
3. 执行运算:javaObject result=expression.evaluate(1 + 2);
SpEL在Spring框架中应用广泛,如Spring MVC、Spring Data等。对于想要学习或工作的朋友来说,掌握SpEL具有一定的参考价值。需要的伙伴可以参考以下资料:
(1)Spring官方文档:[https://docs.spring.io/spring-framework/docs/current/reference//core.#expression-language](https://docs.spring.io/spring-framework/docs/current/reference//core.#expression-language)
(2)Spring Expression Language Tutorial:[https://www.tutorialspoint.com/spring/spring_expression_language.htm](https://www.tutorialspoint.com/spring/spring_expression_language.htm)
(3)Java SpEL Tutorial:[https://www.java67.com/2016/01/spring-expression-language-tutorial.](https://www.java67.com/2016/01/spring-expression-language-tutorial.)
希望这些资料能对您有所帮助。
这篇文章主要介绍了spring表达式语言SpEL用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
(1)spring表达式语言是一个支持运行时查询和操作对象图得我强大表达式语言。
(2)语言类似于EL:SpEL使用#{...}作为定界符。所有在大括号中的字符串均被认为是SpEL。
(3)SpEL为bean的属性进行动态赋值提供了便利。
(4)通过SpEL可以实现:
- 通过Bean的id对Bean进行引用
- 调用方法及引用对象的属性
- 计算表达式的值
- 正则表达式匹配
字面量的表示:
- 整型:#{5}
- 小数:#{3.45}
- 科学计数法:#[1e4]
- 字符串:可以使用单引号或双引号早味字符串的定界符:#{'tom'},#{"tom"}
- 布尔值:#{false}
SpEL支持的运算符号:+ - * / % ^ < > == <= >= lt gt eq le ge and or not | (?:) if-else 正则表达式等等
调用静态属性和方法:通过T()
以下代码均忽略类中的getter、setter和to_string方法。
Car.java
package com.gong.spring.beans.spel; public class Car { public Car() { } public Car(String name) { this.name = name; } private String name; //轮胎周长 private double tyrePerimeter; private double price;}
Address.java
package com.gong.spring.beans.spel; public class Address { private String city; private String street; }
Student.java
package com.gong.spring.beans.spel; public class Student { private String name; private int age; private double score; private String city; private String info; private Car car; private Address address; }
beans-spel.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:p="www.springframework.org/schema/p" xsi:schemaLocation="www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="car" class="com.gong.spring.beans.spel.Car" p:name="baoma" p:tyrePerimeter="#{T(java.lang.Math).PI*80}"></bean> <bean id="address" class="com.gong.spring.beans.spel.Address" p:city="武汉" p:street="#{'络南街道'}"></bean> <bean id="student" class="com.gong.spring.beans.spel.Student" p:name="tom" p:age="#{12}" p:score="#{99.00}"> <!-- 使用spel引用其它的bean --> <property name="car" value="#{car}"></property> <!-- 使用spel引用其它bean的属性 --> <property name="city" value="#{address.city}"></property> <!-- 使用spel运算符 ,进行动态赋值--> <property name="info" value="#{car.price >300000 ? '有钱' : '没钱'}"></property> </bean> </beans>
Main.java
package com.gong.spring.beans.spel; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { //1.创建spring的IOC容器对象 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-spel.xml"); //2.从容器中获取Bean实例 Student student = (Student) ctx.getBean("student"); System.out.println(student.toString()); } }
部分输出:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

