YourNote 601: JavaBean - zhamri/CSC584-Enterprise_Programming GitHub Wiki
1. What is a JavaBean?
A JavaBean is a reusable Java class that follows a set of conventions.
A JavaBean is mainly used to:
- Store data
- Transfer data between layers
- Represent entities or models
- Encapsulate properties
A JavaBean is NOT the same as EJB (Enterprise JavaBean).
JavaBean is simply a Plain Old Java Object (POJO) that follows specific rules.
2. JavaBean Rules
A JavaBean should:
1. Have a public no-argument constructor
public Student() {
}
2. Have private fields
private String name;
private int age;
3. Have public getter methods
public String getName() {
return name;
}
4. Have public setter methods
public void setName(String name) {
this.name = name;
}
5. Implement Serializable (recommended)
implements Serializable
3. Basic JavaBean Example
import java.io.Serializable;
public class Student implements Serializable {
private String id;
private String name;
private int age;
public Student() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
}
4. Creating and Using a JavaBean
public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setId("S001");
student.setName("Ali");
student.setAge(20);
System.out.println(student.getId());
System.out.println(student.getName());
System.out.println(student.getAge());
}
}
Output:
S001
Ali
20
5. Why Use Private Variables?
Example:
private String name;
Instead of:
public String name;
Benefits:
- Encapsulation
- Data protection
- Validation support
- Easier maintenance
6. Getters and Setters
Getter
Returns a value.
public String getName() {
return name;
}
Setter
Updates a value.
public void setName(String name) {
this.name = name;
}
7. JavaBean Naming Convention
Field
private String studentName;
Getter
public String getStudentName() {
return studentName;
}
Setter
public void setStudentName(String studentName) {
this.studentName = studentName;
}
8. Boolean Property Convention
Field:
private boolean active;
Getter:
public boolean isActive() {
return active;
}
Setter:
public void setActive(boolean active) {
this.active = active;
}
9. JavaBean with Validation
public void setAge(int age) {
if(age >= 0) {
this.age = age;
}
}
Usage:
student.setAge(20);
Benefits:
- Prevent invalid data
- Centralized validation
10. JavaBean in JDBC Applications
Example:
Student Bean
public class Student {
private int id;
private String name;
public Student() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Reading Data
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
}
11. JavaBean in Servlet/JSP
Servlet:
Student student = new Student();
student.setName("Ali");
request.setAttribute("student", student);
JSP:
${student.name}
or
${student.age}
12. JavaBean in Spring Boot
Entity Example:
@Entity
public class Student {
@Id
private Long id;
private String name;
public Student() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Spring Boot heavily uses JavaBean conventions.
13. JavaBean vs POJO
POJO
Any normal Java object.
public class Student {
}
JavaBean
A POJO that follows JavaBean rules.
public class Student implements Serializable {
private String name;
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Relationship:
POJO
|
+-- JavaBean
All JavaBeans are POJOs.
Not all POJOs are JavaBeans.
14. JavaBean vs EJB
| Feature | JavaBean | EJB |
|---|---|---|
| Purpose | Store Data | Business Logic |
| Server Required | No | Yes |
| Application Server | No | Yes |
| Transactions | No | Yes |
| Security | No | Yes |
| Scheduling | No | Yes |
| Complexity | Simple | Complex |
| Example | Student.java | StudentServiceEJB.java |
15. JavaBean in MVC Architecture
View (JSP)
|
Controller (Servlet)
|
Model (JavaBean)
|
Database
Example:
Student.jsp
|
StudentServlet
|
StudentBean
|
MySQL
16. Advantages of JavaBeans
- Reusable
- Easy to understand
- Supports encapsulation
- Framework friendly
- Easy maintenance
- Standardized naming convention
17. Disadvantages of JavaBeans
- Many getter/setter methods
- Boilerplate code
- Can become verbose
Example:
private String id;
private String name;
private int age;
requires many methods.
18. Modern Alternative – Java Record
Java 16 introduced Records.
JavaBean:
public class Student {
private String id;
private String name;
public Student() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Record:
public record Student(
String id,
String name
) {
}
Much shorter.
Summary
A JavaBean is a reusable Java class that follows standard conventions:
- Private fields
- Public getters
- Public setters
- No-argument constructor
- Serializable (recommended)
JavaBeans are commonly used for:
- Data transfer
- MVC applications
- JDBC applications
- Spring Boot entities
- DTOs (Data Transfer Objects)
JavaBean is a simple data container, while EJB is an enterprise component used for business logic and enterprise services.