您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页九、Spring 3.0 提供的表达式语言(SpEL)

九、Spring 3.0 提供的表达式语言(SpEL)

来源:二三四教育网

使用Expression接口进行表达式求值:

SpEL主要提供如下三个接口:

  • ExpressionParser:该接口负责解析一个SpEL表达式,返回一个Expression对象。
  • Expression:该接口实例代表一个表达式。
  • EvalutionContext:代表计算表达式值得上下文。

Expression实例代表一个表达式,它包含了如下方法用于计算,得到表达式的值:

  • Object getValue():计算表达式的值。
  • <T> T getValue(Class<T> desireResultType):计算表达式的值,而且尝试将该表达式的值当成desireResultType类型来处理。
  • Object getValue(EvaluationContext context):使用指定的EvaluationContext来计算表达式的值。
  • <T> T getValue(EvaluationContext context,Class<T> desireResultType):计算表达式的值,而且尝试将该表达式的值当成desireResultType类型来处理。
  • Object getValue(Object rootObject):以rootObject作为表达式的root对象来计算表达式的值。
  • <T> T getValue(Object rootObject,Class<T> desireResultType):以rootObject作为表达式的root对象来计算表达式的值。而且尝试将该表达式的值当成desireResultType类型来处理。

Bean定义中的表达式语言支持:

Author.java

public class Author implements Persion
{
    private Integer id;
    private String name;
    private List<String> books;
    .......省略所有的setter和getter方法.......

    public void useAxe(){
    System.out.println(axe.chop());
    }
}

beans.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans 
    
    
   
    
    
    
        
        
        
        
         >
        
        
    <!--
    配置setName()的参数时,在表达式中调用方法
    配置setAxe()的参数时 ,在表达式中创建对象
    配置调用setBooks()的参数,在表达式中访问其他的Bean属性
     -->
     
     <bean id="author" class="entity.Author" p:name="#{T(java.lang.Math).random()}"
                                             p:axe="#{new entity.SteelAxe()"}
                                             p:books="#{{confTest.a,confTest.b}}"/>
</beans>

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务