Basic example using spEL
![]() |
|
Step 1 :
Create a new package, com.simpleCodeStuffs.spEL. Create the POJO classes Candidate.java and Address.java with the below specifications.
File : Candidate.java
package com.simpleCodeStuffs.spEL;
public class Candidate {
private String name;
private int age;
private Address addrs;
private String area;
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public Candidate() {
this.name = null;
this.age = 0;
this.addrs = null;
}
public Candidate(String name, int age, Address addrs) {
this.name = name;
this.age = age;
this.addrs = addrs;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Address getAddrs() {
return addrs;
}
public void setAddrs(Address addrs) {
this.addrs = addrs;
}
}
Fie : Address.java
package com.simpleCodeStuffs.spEL;
public class Address {
private String doorNo;
private String street;
private String area;
public Address() {
this.doorNo = null;
this.street = null;
this.area = null;
}
public Address(String doorNo, String street, String area) {
this.doorNo = doorNo;
this.street = street;
this.area = area;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getDoorNo() {
return doorNo;
}
public void setDoorNo(String doorNo) {
this.doorNo = doorNo;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
Step 2 :
Under the src folder, create a new xml file elBeans.xml to provide the configuration metadata using spEL
File ; elBeans.xml
Note here, the value for the bean elAddress is provided using a simple setter injection. But for the bean elCandidate , the value for addrs and area property is provided using spEL expression.
The general syntax for a spEL expression is
#{spEL Expression}
In the above example, the value for addrs is provided as #{elAddress}. This means that addrs is assigned the value set for the bean elAddress. Similarly, for area property, the value is assigned to #{elAddress.area}, thereby injecting the value of the ‘area’ property from ’elAddress’ to the area property inside elCandidate.
Step 3 : Provide the Main Class
File : MainClass.java
package com.simpleCodeStuffs.spEL;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("elBeans.xml");
Candidate can = (Candidate) context.getBean("elCandidate");
Address add = (Address) context.getBean("elAddress");
System.out.println("Name: " + can.getName());
System.out.println("Age : " + can.getAge());
System.out.println("Area : " + can.getArea());
System.out.println("Address : " + can.getAddrs().getDoorNo());
System.out.println("\t " + add.getStreet());
System.out.println("\t " + add.getArea());
}
}
Step 4: Run the program. The output is

![]() |
|
