”;
SpEL expression supports creating objects within expressions using new operator. We need to pass the fully qualified name of the class.
Syntax
Employee robert = parser.parseExpression("new com.tutorialspoint.Employee(''Robert'',''USA'')").getValue(Employee.class);
Following example shows the various use cases.
Example
Let”s update the project created in Spring SpEL – Create Project chapter. We”re adding/updating following files −
-
Employee.java − Employee class.
-
Dept.java − Department class.
-
MainApp.java − Main application to run and test.
Here is the content of Employee.java file −
package com.tutorialspoint; public class Employee { private String name; private String country; public Employee(String name, String country) { this.name = name; this.country = country; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String toString() { return "[" +name+ ", "+country + "]"; } }
Here is the content of Dept.java file −
package com.tutorialspoint; import java.util.List; public class Dept { private List<Employee> employees; public List<Employee> getEmployees() { return employees; } public void setEmployees(List<Employee> employees) { this.employees = employees; } public String toString() { return "[" + employees.toString() + "]"; } }
Here is the content of MainApp.java file −
package com.tutorialspoint; import java.text.ParseException; import java.util.ArrayList; import java.util.List; import org.springframework.expression.EvaluationContext; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; public class MainApp { public static void main(String[] args) throws ParseException { ExpressionParser parser = new SpelExpressionParser(); List<Employee> employees = new ArrayList<Employee>(); Employee robert = parser.parseExpression("new com.tutorialspoint.Employee(''Robert'',''USA'')") .getValue(Employee.class); employees.add(robert); Dept dept = new Dept(); dept.setEmployees(employees); System.out.println(dept); EvaluationContext deptContext = new StandardEvaluationContext(dept); parser.parseExpression("employees.add(new com.tutorialspoint.Employee(''Julie'',''USA''))") .getValue(deptContext); System.out.println(dept); } }
Output
[[[Robert, USA]]] [[[Robert, USA], [Julie, USA]]]
Advertisements
”;