Не путать с Enterprise JavaBeans.

JavaBeans — классы в языке Java, написанные по определённым правилам. Они используются для объединения нескольких объектов в один (англ. bean — фасоль, кофейное зерно) для удобной передачи данных.[1]

Спецификация Sun Microsystems определяет JavaBeans как повторно используемые программные компоненты, которыми можно управлять, используя графические конструкторы и средства IDE.

JavaBeans обеспечивают основу для многократно используемых, встраиваемых и модульных компонентов ПО. Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса. Одна из целей создания JavaBeans — взаимодействие с похожими компонентными структурами. Например, Windows-программа, при наличии соответствующего моста или объекта-обёртки, может использовать компонент JavaBeans так, будто бы он является компонентом COM или ActiveX.

Правила описания JavaBean

править

Чтобы класс мог работать как bean, он должен соответствовать определённым соглашениям об именах методов, конструкторе и поведении. Эти соглашения дают возможность создания инструментов, которые могут использовать, замещать и соединять JavaBeans.

Правила описания гласят:

  • Класс должен иметь конструктор без параметров, с модификатором доступа public. Такой конструктор позволяет инструментам создать объект без дополнительных сложностей с параметрами.
  • Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов. Многие инструменты даже имеют специализированные редакторы для различных типов свойств.
  • Класс должен быть сериализуем. Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом.
  • Класс должен иметь переопределенные методы equals(), hashCode() и toString().

Так как требования в основном изложены в виде соглашения, а не интерфейса, некоторые разработчики рассматривают JavaBeans, как Plain Old Java Objects, которые следуют определённым правилам именования.

Примеры

править
// PersonBean.java

public class PersonBean implements java.io.Serializable {
    private String name;
    private boolean deceased;

    public PersonBean() {
    }

    // Методы геттеры (get) и сеттеры (set)
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean getDeceased() {
        return deceased;
    }
    public void setDeceased(boolean deceased) {
        this.deceased = deceased;
    }

    //Переопределенные методы equals() и hashCode()
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        PersonBean that = (PersonBean) o;

        if (deceased != that.deceased) {
            return false;
        }
        return !(name != null ? !name.equals(that.name) : that.name != null);

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (deceased ? 1 : 0);
        return result;
    }

    //Переопределенный метод toString()
    @Override
    public String toString() {
        return "PersonBean{" +
                "name='" + name + '\'' +
                ", deceased=" + deceased +
                '}';
    }
}
// TestPersonBean.java

public class TestPersonBean {
    public static void main(String[] args) {

        PersonBean person = new PersonBean();
        person.setName("Bob");
        person.setDeceased(true);

        // Результат: "Bob [deceased]"
        System.out.print(person.getName());
        System.out.println(person.getDeceased() ? " [deceased]" : " [alive]");
    }
}

Примечания

править
  1. Спецификация JavaBeans (амер. англ.). www.oracle.com. Дата обращения: 31 марта 2021. Архивировано 16 апреля 2021 года.


📚 Artikel Terkait di Wikipedia

JavaServer Pages

jsp:useBean — Поиск или создание нового экземпляра JavaBean; jsp:setProperty — Установка свойств JavaBean; jsp:getProperty — Вставить свойство JavaBean в поток

Jakarta EE

поддерживает автоматическую синхронизацию Java-объектов с базой данных (CMP — container managed persistence, BMP — bean managed persistence); JMS — сервис доставки

Android

Google. Основана на ядре Linux и собственной реализации виртуальной машины Java компании Google. Впоследствии Google инициировала создание альянса Open Handset

Java Management Extensions

MBean-объектами (англ. Managed Bean, управляемый Java Bean). Для разработки приложений, использующих данную технологию, может применяться Java Dynamic Management

Bean Scripting Framework

Bean Scripting Framework — фреймворк, позволяющий использовать скрипты в коде Java. Он представляет собой набор классов Java, обеспечивающих поддержку

JasperReports

печати документы, консолидирующие данные из различных источников (JDBC, JavaBean, XML, CSV, XLS). Отчёты могут выводиться на экран, принтер, либо в форматы

DTO

изменение в entity bean может вызывать методы удалённого доступа, что увеличивает нагрузку на сеть и снижает скорость работы программы. Sun Java Center порекомендовал

История версий Java EE

Injection (CDI), Dependency Injection (DI), Bean Validation[англ.], Managed Beans, и Interceptors. В Java EE 6 был представлен концепт профиля, который