JavaBean сам по себе не очень интересен, это просто класс Java, который соответствует некоторым стандартам, которые вы перечислили выше.Однако соответствие этому стандарту является одним из столпов, на которых построена инфраструктура Java EE, и она встречается в довольно многих местах.Я подозреваю, что когда вы слышите обо всех замечательных вещах, которые может делать JavaBeans, то, что упоминается в Enterprise JavaBeans (EJB).К вашему сведению, существует несколько различных типов EJB, перечисленных ниже:
- Бины сущностей
- Сессионные бины с сохранением состояния
- Сессионные бины без сохранения состояния
Некоторые подробности теперь следуют ...
Entity Beans
Возможно, вы захотите читать / записывать объекты в / из базовой базы данных.Вы можете использовать JDBC / SQL для этого, но вы также можете использовать среду персистентности.Спецификация Java EE включает в себя спецификацию персистентности, посредством которой вы объявляете свой класс «объектным компонентом», а Java автоматически генерирует таблицы базы данных и логику для сопоставления записей в вашей базе данных и объектов в вашей программе.Первоначально, постоянство было чем-то, что требовало использования сервера приложений (такого как Glassfish, JBoss, Geronimo и т. Д.), Но AFAIK, вы можете использовать его в настольных приложениях без серверного компонента.Фактическая реализация обеспечивается библиотекой более низкого уровня, такой как Eclipselink, Toplink, Hibernate и т. Д., Но Java API абстрагирует любые различия между ними.
Stateful Session Beans
Представьте, что вы хотите создать экземпляр класса Java, который существует в отдельной JVM.JVM могут работать на одном физическом компьютере, но в равной степени могут находиться на отдельных компьютерах, обменивающихся данными по сети.Используя сервер приложений Java EE, вы можете создать класс, экземпляры которого могут создавать клиенты сервера приложений.Эти клиенты могут создавать экземпляры класса, который будет действовать как обычный объект, но любые методы, которые вызываются для этого объекта, выполняются на сервере, а результаты передаются обратно вызывающей стороне.Это в основном объектно-ориентированная форма удаленных вызовов процедур.
Сессионные компоненты без сохранения состояния
Это небольшое изменение в компонентных сессионных компонентах.В случае bean-компонентов с состоянием, если на сервере имеется 1000 клиентов, ему, возможно, придется создать 1000 экземпляров компонента и запомнить, какой экземпляр принадлежит какому клиенту.С bean-компонентами без сохранения состояния сервер создает пул bean-компонентов и не беспокоится о том, какой клиент владеет , какой bean-компонент.Когда клиент вызывает метод, сервер выбирает bean-компонент из пула и использует его, возвращая его в пул по завершении.Вы используете сессионные компоненты с состоянием, когда вы хотите, чтобы сервер запомнил подробности о каждом клиенте, вы будете использовать компоненты без состояния, когда вам не нужно запоминать специфические детали клиента.Обратите внимание, что bean-компоненты без состояния могут иметь состояние, просто это состояние не будет представлять интереса для клиента.