Spring EL演算子の例

Spring ELオペレーターの例

Spring ELは、ほとんどの標準的な数学、論理、または関係演算子をサポートしています。 例えば、

  1. Relational operators –等しい(==、eq)、等しくない(!=、ne)、より小さい(<、lt)、以下(⇐、le)、より大きい(>、gt)、および以上(> =、ge)。

  2. Logical operators – and、or、and not(!)

  3. Mathematical operators –加算(+)、減算(-)、乗算(*)、除算(/)、モジュラス(%)、指数累乗(^)。

注釈のSpring EL

この例は、SpELでの演算子の使用方法を示しています。

package com.example.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("customerBean")
public class Customer {

    //Relational operators

    @Value("#{1 == 1}") //true
    private boolean testEqual;

    @Value("#{1 != 1}") //false
    private boolean testNotEqual;

    @Value("#{1 < 1}") //false
    private boolean testLessThan;

    @Value("#{1 <= 1}") //true
    private boolean testLessThanOrEqual;

    @Value("#{1 > 1}") //false
    private boolean testGreaterThan;

    @Value("#{1 >= 1}") //true
    private boolean testGreaterThanOrEqual;

    //Logical operators , numberBean.no == 999

    @Value("#{numberBean.no == 999 and numberBean.no < 900}") //false
    private boolean testAnd;

    @Value("#{numberBean.no == 999 or numberBean.no < 900}") //true
    private boolean testOr;

    @Value("#{!(numberBean.no == 999)}") //false
    private boolean testNot;

    //Mathematical operators

    @Value("#{1 + 1}") //2.0
    private double testAdd;

    @Value("#{'1' + '@' + '1'}") //[email protected]
    private String testAddString;

    @Value("#{1 - 1}") //0.0
    private double testSubtraction;

    @Value("#{1 * 1}") //1.0
    private double testMultiplication;

    @Value("#{10 / 2}") //5.0
    private double testDivision;

    @Value("#{10 % 10}") //0.0
    private double testModulus ;

    @Value("#{2 ^ 2}") //4.0
    private double testExponentialPower;

    @Override
    public String toString() {
        return "Customer [testEqual=" + testEqual + ", testNotEqual="
                + testNotEqual + ", testLessThan=" + testLessThan
                + ", testLessThanOrEqual=" + testLessThanOrEqual
                + ", testGreaterThan=" + testGreaterThan
                + ", testGreaterThanOrEqual=" + testGreaterThanOrEqual
                + ", testAnd=" + testAnd + ", testOr=" + testOr + ", testNot="
                + testNot + ", testAdd=" + testAdd + ", testAddString="
                + testAddString + ", testSubtraction=" + testSubtraction
                + ", testMultiplication=" + testMultiplication
                + ", testDivision=" + testDivision + ", testModulus="
                + testModulus + ", testExponentialPower="
                + testExponentialPower + "]";
    }

}
package com.example.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("numberBean")
public class Number {

    @Value("999")
    private int no;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

}

それを実行します

       Customer obj = (Customer) context.getBean("customerBean");
       System.out.println(obj);

出力

Customer [
    testEqual=true,
    testNotEqual=false,
    testLessThan=false,
    testLessThanOrEqual=true,
    testGreaterThan=false,
    testGreaterThanOrEqual=true,
    testAnd=false,
    testOr=true,
    testNot=false,
    testAdd=2.0,
    [email protected],
    testSubtraction=0.0,
    testMultiplication=1.0,
    testDivision=5.0,
    testModulus=0.0,
    testExponentialPower=4.0
]

XMLのSpring EL

Bean定義XMLファイルで同等のバージョンを参照してください。 XMLでは、「less than」のような記号は常にサポートされているわけではありません。代わりに、上記の同等のテキストを使用する必要があります。たとえば、( '<' = 'lt')および( '' = 'le')。



    

      
      
      
      
      
      

      
      
      

      
      
      
      
      
      
      

    

    
        
    

ソースコードをダウンロード

ダウンロード-Spring3-EL-Operator-Example.zip(7 KB)