- 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]