Spring ELオペレーターの例
Spring ELは、ほとんどの標準的な数学、論理、または関係演算子をサポートしています。 例えば、
-
Relational operators –等しい(==、eq)、等しくない(!=、ne)、より小さい(<、lt)、以下(⇐、le)、より大きい(>、gt)、および以上(> =、ge)。
-
Logical operators – and、or、and not(!)
-
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'}") //1@1 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, testAddString=1@1, 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)