- Spring SpEL 教程
- Spring SpEL - 主页
- Spring SpEL - 概述
- Spring SpEL - 环境设置
- Spring SpEL - 创建项目
- 表达评估
- Spring SpEL - 表达式接口
- Spring SpEL - 评估上下文
- Bean 配置
- Spring SpEL - XML 配置
- Spring SpEL - 注解配置
- 语言参考
- Spring SpEL - 文字表达式
- Spring SpEL - 属性
- Spring SpEL - 数组
- Spring SpEL - 列表
- Spring SpEL - 地图
- Spring SpEL - 方法
- 运营商
- Spring SpEL - 关系运算符
- Spring SpEL - 逻辑运算符
- Spring SpEL - 数学运算符
- Spring SpEL - 赋值运算符
- 特殊操作员
- Spring SpEL - 三元运算符
- Spring SpEL - Elvis Operator
- Spring SpEL - 安全导航操作员
- 收藏
- Spring SpEL - 集合选择
- Spring SpEL - 集合投影
- 其他特性
- Spring SpEL - 构造函数
- Spring SpEL - 变量
- Spring SpEL - 函数
- Spring SpEL - 表达式模板
- Spring SpEL - 有用的资源
- Spring SpEL - 快速指南
- Spring SpEL - 有用的资源
- Spring SpEL - 讨论
Spring SpEL - 基于 XML 的配置
SpEL 表达式可用于基于 XML 的 bean 配置
句法
以下是在 xml 配置中使用表达式的示例。
<bean id="randomNumberGenerator" class="com.tutorialspoint.RandomNumberGenerator"> <property name="randomNumber" value="#{ T(java.lang.Math).random() * 100.0 }"/> </bean>
这里我们指定了一个要使用 Math.random() 方法填充的属性。对于类,其名称应该是完全限定的。我们也可以使用系统变量以及使用systemProperties。它是一个内置变量。
<property name="country" value="#{ systemProperties['user.country'] }"/>
我们还可以使用另一个带有 SpEL 表达式的 bean,如下所示:
<property name="id" value="#{ randomNumberGenerator.randomNumber }"/>
以下示例显示了各种用例。
例子
让我们更新在Spring SpEL - 创建项目章节中创建的项目。我们正在添加/更新以下文件 -
RandomNumberGenerator.java - 随机数生成器类。
Employee.java - 员工类。
MainApp.java - 要运行和测试的主应用程序。
applicationcontext.xml - beans 配置文件。
这是RandomNumberGenerator.java文件的内容-
package com.tutorialspoint; public class RandomNumberGenerator { private int randomNumber; public int getRandomNumber() { return randomNumber; } public void setRandomNumber(int randomNumber) { this.randomNumber = randomNumber; } }
这是Employee.java文件的内容-
package com.tutorialspoint; public class Employee { private int id; private String name; private String country; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } @Override public String toString() { return "[" + id + ", " + name + ", " + country + "]"; } }
这是MainApp.java文件的内容-
package com.tutorialspoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationcontext.xml"); Employee employee = (Employee) applicationContext.getBean("employee"); System.out.println(employee); } }
这是applicationcontext.xml文件的内容-
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="randomNumberGenerator" class="com.tutorialspoint.RandomNumberGenerator"> <property name="randomNumber" value="#{ T(java.lang.Math).random() * 100.0 }"/> </bean> <bean id="employee" class="com.tutorialspoint.Employee"> <property name="id" value="#{ randomNumberGenerator.randomNumber }"/> <property name="country" value="#{ systemProperties['user.country'] }"/> <property name="name" value="Mahesh"/> </bean> </beans>
输出
[84, Mahesh, IN]