User.java
package com.test.spring.model;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
测试类
SpELTest_Simple.java
package com.test.spring.spel;
import org.junit.Test;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import com.test.spring.model.User;
public class SpELTest_Simple {
@Test
public void test01() {
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello,World'");
System.out.println((String)exp.getValue());
}
@Test
public void test02() {
User u = new User();
u.setUsername("zhangsan");
EvaluationContext context = new StandardEvaluationContext(u);
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("username"); //u.getUsername()
System.out.println((String)exp.getValue(context));
System.out.println((String)exp.getValue(u));
}
//eval("alert('ok');");
}
运行结果:
Hello,World
zhangsan
zhangsan
MyBean.java
package com.test.spring.spel;
public class MyBean {
private double randomNumber;
private String userRegion;
public double getRandomNumber() {
return randomNumber;
}
public void setRandomNumber(double randomNumber) {
this.randomNumber = randomNumber;
}
public String getUserRegion() {
return userRegion;
}
public void setUserRegion(String userRegion) {
this.userRegion = userRegion;
//System.getProperty("user.country");
}
}
beans.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myBean" class="com.test.spring.spel.MyBean"> <property name="randomNumber" value="#{T(java.lang.Math).random() * 100}"></property> <property name="userRegion" value="#{systemProperties['user.country']}"></property> </bean> </beans>
测试类
SpELTest.java
package com.test.spring.spel;
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@ContextConfiguration("classpath:beans.xml")
public class SpELTest extends AbstractJUnit4SpringContextTests {
private MyBean myBean;
public MyBean getMyBean() {
return myBean;
}
@Resource(name = "myBean")
public void setMyBean(MyBean myBean) {
this.myBean = myBean;
}
@Test
public void test01() {
System.out.println(myBean.getRandomNumber());
System.out.println(myBean.getUserRegion());
}
}
运行结果:
89.28062809767297
CN