SpEL

2019-02-18  本文已影响1人  极客_Ls

Spring 表达式语言 (SpEL):
支持运行时查询和操作对象1图的强大的表达式语言;

其语法类似 EL : Sp EL 使用 # 作为定界符,所有在大括号中的字符都将被认为是 SpEL;

SpEL 为 Bean 的属性进行动态赋值提供里了便利;

通过 SpEL 可以实现:

//通过 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>
上一篇 下一篇

猜你喜欢

热点阅读