首页 / 操作系统 / Linux / Spring基础—— SpEL
一、SpEL:Spring 表达式语言,在使用的时候类似于 EL 表达式,但是需要注意的是,SpEL 使用在 Spring Config 文件中。二、格式:使用 #{} 作为界定符,所有在大括号中的字符都将被认为成是 SeEL三、作用:1.通过 Bean 的 id 对 Bean 进行引用2.调用方法以及引用对象中的属性3.计算表达式的值4.正则表达式的匹配四、SpEL 字面值:1.整数:<property name="age" value="#{23}"/>2.小数:<property name="salary" value="#{2300.55}"/>3.科学计数法:<property name="salary" value="#{1e4}"/>4.字符串:<property name="empName" value="#{"emp01"}"/> 或 <property name="empName" value="#{"emp01"}"/>5.布尔值:<property name="formal" value="#{false}"/>五、引用 Bean、属性和方法1.引用其他 Bean:<bean class="com.linuxidc.spring.bean.Employee" id="employee"> <property name="empName" value="#{"emp01"}"/> <property name="age" value="#{23}"/></bean><bean class="com.linuxidc.spring.bean.Department" id="department"> <property name="deptName" value="#{"dept01"}"/> <property name="employee" value="#{employee}"/></bean>2.引用其他 Bean 的属性<bean class="com.linuxidc.spring.bean.Employee" id="employee"> <property name="empName" value="#{"emp01"}"/> <property name="age" value="#{23}"/></bean><bean class="com.linuxidc.spring.bean.Department" id="department2" p:deptName="AAAA" p:employee-ref="employee"></bean><bean class="com.linuxidc.spring.bean.Department" id="department"> <property name="deptName" value="#{department2.deptName}"/> <property name="employee" value="#{employee}"/></bean>控制台输出:Department{deptName="AAAA", employee=Employee{empName="emp01", age=23}}注意:引用其他 Bean 的属性是通过 getXxx() 方法来引用的3.调用方法,支持链式操作<bean class="com.linuxidc.spring.bean.Department" id="department"> <property name="deptName" value="#{department2.deptName.toString().toLowerCase()}"/> <property name="employee" value="#{employee}"/></bean>控制台输出:Department{deptName="aaaa", employee=Employee{empName="emp01", age=23}}六、SpEL 支持的运算1.数学运算符:+,-,*,/,%,^+:<bean class="com.linuxidc.spring.bean.Employee" id="employee"> <property name="empName" value="#{"emp01"}"/> <property name="age" value="#{23}"/> <property name="salary" value="#{53.32 + 12.23}"/></bean>控制台输出:Employee{empName="emp01", age=23, salary=65.55}其他运算符使用类似。2.字符串连接:+<property name="empName" value="#{"emp01" +" "+ 12}"/>控制台输出:Employee{empName="emp01 12", age=23, salary=-41.09}3.比较运算符:<,>,==,<=,>=,lt,gt,eq,le,ge<property name="formal" value="#{100 == 100}"/>控制台输出:Employee{empName="emp01 12", age=23, salary=-41.09, formal=true}4.逻辑运算符:and,or,not,|<property name="formal" value="#{100 == 100 and 100 gt 80}"/>控制台输出:Employee{empName="emp01 12", age=23, salary=-41.09, formal=true}其他几个与之类似。5.if-else 运算符:? exp1 : exp2<property name="formal" value="#{100 == 100 ? false : true}"/>控制台输出:Employee{empName="emp01 12", age=23, salary=-41.09, formal=false}6.正则表达式:matches<property name="matchesEmail" value="#{"a@b.com" matches "/^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})"}"/>控制台输出:isMatchesEmail=false七、调用静态方法或静态属性。通过 T(), 返回一个类的对象<property name="salary" value="#{T(java.lang.Math).PI * 1000}"/>控制台输出:salary=3141.592653589793Spring中如何配置Hibernate事务 http://www.linuxidc.com/Linux/2013-12/93681.htmStruts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm基于 Spring 设计并实现 RESTful Web Services http://www.linuxidc.com/Linux/2013-10/91974.htmSpring-3.2.4 + Quartz-2.2.0集成实例 http://www.linuxidc.com/Linux/2013-10/91524.htm使用 Spring 进行单元测试 http://www.linuxidc.com/Linux/2013-09/89913.htm运用Spring注解实现Netty服务器端UDP应用程序 http://www.linuxidc.com/Linux/2013-09/89780.htmSpring 3.x 企业应用开发实战 PDF完整高清扫描版+源代码 http://www.linuxidc.com/Linux/2013-10/91357.htmSpring 的详细介绍:请点这里
Spring 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133313.htm