Ответ
Обычный объект (POJO - Plain Old Java Object) — это любой экземпляр класса, созданный через new. Он не обязан следовать каким-либо специальным конвенциям.
JavaBean — это специальный вид POJO, который следует строгим соглашениям (конвенциям):
- Конструктор без аргументов: Должен иметь public no-args конструктор.
- Свойства (properties): Доступ к приватным полям осуществляется только через геттеры и сеттеры.
- Сериализуемость: Должен реализовывать интерфейс
java.io.Serializable(маркерный интерфейс).
Пример класса JavaBean:
import java.io.Serializable;
public class User implements Serializable { // Правило 3: Serializable
// Приватные поля
private String name;
private int age;
// Правило 1: Конструктор без аргументов
public User() {}
// Правило 2: Геттеры и сеттеры (соглашение getName/setName)
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;
}
}
Зачем нужны JavaBeans? Эта стандартная конвенция позволяет фреймворкам (таким как Spring для инъекции свойств, Hibernate для ORM, Jakarta EE, библиотекам для работы с отражением (Reflection) и инструментам визуальной разработки) единообразно инспектировать, создавать и манипулировать объектами. Обычный объект таких ограничений не имеет.