Ответ
JavaBean — это стандартный, повторно используемый Java-компонент, который следует строгим соглашениям о проектировании. Эти соглашения позволяют инструментам (билдерам GUI, фреймворкам) интроспектировать, манипулировать и сериализовать объекты.
Обязательные соглашения:
- Публичный конструктор без аргументов.
- Свойства (properties) доступны через методы доступа: геттер (
getX/isXдля boolean) и сеттер (setX). - Класс должен быть сериализуемым (реализовывать
java.io.Serializable), что часто требуется для долговременного хранения или передачи по сети.
Пример класса JavaBean:
import java.io.Serializable;
public class UserBean implements Serializable {
private String name;
private int age;
private boolean active;
// 1. Публичный конструктор без аргументов
public UserBean() {}
// 2. Геттеры и сеттеры для свойств
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 boolean isActive() { return active; } // Геттер для boolean
public void setActive(boolean active) { this.active = active; }
}
Где используется?
- Фреймворки: Spring (для инъекции зависимостей), Jakarta EE (JSF, CDI).
- ORM: Hibernate/JPA (сущности часто следуют этим соглашениям).
- Событийная модель и инструменты визуальной разработки.
Важно: Не путать JavaBeans с обычными POJO. Все JavaBeans — это POJO, но не все POJO являются JavaBeans, так как POJO не обязаны следовать этим строгим соглашениям.