Spring 表达式语言 (SpEL):
支持运行时查询和操作对象1图的强大的表达式语言;
其语法类似 EL : Sp EL 使用 # 作为定界符
,所有在大括号中的字符都将被认为是 SpEL;
SpEL 为 Bean 的属性进行动态赋值提供里了便利;
通过 SpEL 可以实现:
- 通过 Bean 的 id 对 Bean 进行引用;
- 调用方法以及引用对象中的属性;
- 计算表达式的值:(算术运算,关系运算,逻辑运算);
- 正则表达式的匹配;
//通过 Bean 的 id 对 Bean 进行引用;#{id}
//引用外部properties属性文件
<context:property-placeholder location="classpath:SpringXml.properties" file-encoding="gbk"></context:property-placeholder>
//配置配置 car 的 Bean
<bean id="car2" class="com.laishuai.pojo.Car" p:name="${car}" ></bean>
//配置 person1 的 Bean,引用 car2 的配置
<bean id="person1" class="com.laishuai.pojo.Person" p:name="LaiShuai" p:car="#{car2}"></bean>
//调用方法以及引用对象中的属性;#{id.pro}
//car0;
<bean id="car0" class="com.laishuai.pojo.Car" p:name="宝马car0"bean>
//person0,通过自动装配匹配 car0;
<bean id="person0" class="com.laishuai.pojo.Person" p:name="LaiShuai" autowire="byName"></bean>
/**
* person2 ,通过 SpEL 匹配 person0;
* 匹配person0的name,并进行字母大写操作;调用方法以;
* 匹配person0的car;引用对象中的属性 */
<bean id="person2" class="com.laishuai.pojo.Person" p:name="#{person1.name.toUpperCase()}" p:car="#{person0.car}"></bean>
//- 计算表达式的值:算术运算
<bean id="driver0" class="com.laishuai.pojo.Driver">
<property name="name" value="LaiShuai"></property>
<property name="age" value="10"></property>
<property name="cars" ref="car"></property>
</bean>
<bean id="driver1" class="com.laishuai.pojo.Driver">
<property name="name" value="ShuMin"></property>
<property name="age" value="#{driver0.age > 10 ? 10:100}"></property>
<property name="cars" ref="car"></property>
</bean>
网友评论