Насколько я знаю, JavaBeans - это простые методы получения и установки любых полей в вашем классе Java, с другой стороны, POJO кажется похожим (поля и их получатель/установщик), в чем тогда разница?
Поскольку этого недостаточно, вот появляются bean-компоненты, плавающие во всех ваших JSP и конфигурационных файлах Struts, делают (насколько мне известно) одно и то же...
- Меня путают названия, какая разница, какие волшебные слова?
- Почему они называют это bean-компонентом, что я должен сказать, если кто-нибудь спросит меня, как описать bean-компонент в контексте Java EE / JSP / Struts.
Ответ 1 · рейтинг 3 · Jens Schauder
POJO - это простой объект Java, который не соответствует ни одному стандарту фреймворка. Часто Java-бины также считаются POJO, поскольку стандарт Java-бинов (или то, что из него используется) довольно слаб.
Java Beans - это классы Java, которые придерживаются определенных соглашений об именах (в основном, геттер-сеттер) и используются во многих контекстах. JSP является одним из них. На самом деле в Java Bean больше, чем использует большинство людей. Вы можете узнать об этом в этом руководстве: http://docs.oracle.com/javase/tutorial/javabeans/index.html
Почему его называют бобовым? Я могу только догадываться: Java -> Coffee -> Bean, с одной стороны, а с другой стороны, bean - это что-то простое, автономное, что подходит для "компонента"
Ответ 2 · dantuch
JavaBean - это POJO, который сериализуем, имеет конструктор без аргументов и позволяет получить доступ к свойствам с использованием методов получения и установки. Enterprise JavaBean - это не отдельный класс, а целая компонентная модель (опять же, EJB 3 снижает сложность Enterprise JavaBeans).
Таким образом, основное отличие, которое можно увидеть, заключается в том, что POJO могут быть более инкапсулированы - иметь конструкторы аргументов и отбрасывать некоторые сеттеры, которые следует использовать только один раз для каждого объекта. JavaBean, как вы упомянули, применяет некоторый строгий стандарт, который не является лучшим решением для всех нужд.