Они отличаются, или они используются попеременно? Если они Отличаются, то, что сделало их отличающимися друг от друга?
JavaBean - это обычный старый объект Java, который соответствует определенным соглашениям, включая использование функций доступа (getFoo/setFoo) для доступа к членам, предоставление конструктора по умолчанию и несколько других подобных вещей.
Enterprise JavaBean - это компонент сервера приложений Java EE, который бывает нескольких видов, детали которых зависят от версии Java EE, о которой вы говорите (или, более конкретно, от конкретного набора спецификаций EJB).
JavaBeans первоначально предназначались в основном для использования в инструментах для сборки, предоставляя известный интерфейс, который можно было бы искать с помощью интроспекции в инструментах. Однако они быстро превратились в то, что можно назвать религией.
Enterprise JavaBeans предназначались для обеспечения инкапсулированной бизнес-логики для корпоративных приложений в общем контейнере, который предоставлял такие вещи, как управление сессиями, безопасность, объединение ресурсов и т.д. в качестве сервисов, что позволяло бизнес-логике быть (относительно) незапятнанной этими сквозными проблемами. (Достигли ли они этого или нет - вопрос спорный, учитывая, насколько сложным было их использование вначале. Однако в более поздних версиях спецификации это стало проще. Наследные приложения, тем не менее, все еще являются проблемой и, к сожалению, составляют большинство EJB, с которыми вы можете столкнуться.)
Отредактировано для добавления:
Компоненты Java относятся к классам только с полями и их методам получения и установки. Практически без бизнес-логики или, желательно, без нее. Они также известны как POJO (Обычный старый объект Java).
EJB являются частью спецификации J2EE, которую можно использовать для использования всех функций J2EE-совместимых серверов, таких как транзакции, управление сеансами, безопасность и т. Д.(Это не означает, что вы не можете использовать их без EJB)