Spring学习笔记 | Spring表达式语言(spEL)

SpEL简介

Spring表达式语言(简称SpEL)是一个支持运行时查询和操作对象图的强大表达式语言。

语法类似于EL,SpEL使用#{}作为定界符,所有在大框号中的字符都将被认为是SpEL。

SpEl表示字面量

  • 数值:#{数值}
    例如:
  • 字符串:#{'字符串'}#{"字符串"}
    例如:
  • 布尔值:#{布尔值}
    例如:

SpEL引用bean、属性和方法

  • 引用其它对象:#{对象名}
  • 引用其它对象的属性:#{对象名.属性}
  • 调用方法还可以使用链式操作。
  • 调用静态方法或静态属性:通过T()调用一个类的静态方法,它将返回一个Class Object,然后再调用相应的方法或属性。
    例如:

SpEL支持的运算符号

  • 算术运算符:+,-,*,/,%,^
    例如:
  • 加号还可以用作字符串连接
  • 比较运算符:<,>,==,<=,>=,lt,gt,eq,le,ge

示例:
编写一个Address类,代码如下:

package com.spring.spel;

public class Address {
    private String city;
    private String street;

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    @Override
    public String toString() {
        return "Address{" +
                "city='" + city + '\'' +
                ", street='" + street + '\'' +
                '}';
    }
}

编写一个Car类,代码如下:

package com.spring.spel;

public class Address {
    private String city;
    private String street;

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    @Override
    public String toString() {
        return "Address{" +
                "city='" + city + '\'' +
                ", street='" + street + '\'' +
                '}';
    }
}

编写一个Person类,代码如下:

package com.spring.spel;

public class Person {
    private String name;

    private Car car;
    private String info;//根据Car的price确定info
    private String city;//引用address bean的city属性

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", car=" + car +
                ", info='" + info + '\'' +
                ", city='" + city + '\'' +
                '}';
    }
}

配置文件beans-spel.xml




    
        
        
        
    

    
        
        
        
        
    

    
        
        
        
    

你可能感兴趣的:(Spring学习笔记 | Spring表达式语言(spEL))