Обычный старый Java-объект Имя используется, чтобы подчеркнуть, что данный объект является обычным Java-объектом, а не особым объектом, подобным тем, которые определены в EJB 2. Framework.
класс А {}
класс B расширяет / реализует C {}
Примечание: B не является POJO, когда C является видом распределенного каркасного класса или ifc.
например javax.servlet.http.HttpServlet, javax.ejb.EntityBean или J2EE extn
и не сериализуемый / сопоставимый. Так как сериализуемые / сопоставимые действительны для POJO.
Здесь A - простой объект, который независим.
B является специальным объектом, так как B расширяет / реализует C. Таким образом, объект B получает больше смысла от C, а B ограничительно следует правилам из C. И B тесно связан с распределенной структурой. Следовательно, объект B не является POJO из его определения.
Код с использованием класса. Ссылка на объект не должна ничего знать о его типе, и его можно использовать со многими фреймворками.
Таким образом, POJO не должен: 1) расширять заранее заданные классы и 2) реализовывать заранее заданные интерфейсы.
JavaBean является примером POJO, который является сериализуемым, имеет конструктор без аргументов и позволяет получить доступ к свойствам с помощью методов getter и setter, которые следуют простому соглашению об именах.
POJO сосредоточен исключительно на бизнес-логике и не зависит от (корпоративных) структур.
Это означает, что у него есть код для бизнес-логики, но как этот экземпляр создается, к какой службе (EJB ..) принадлежит этот объект и каковы его особые характеристики (Stateful / Stateless), которые будут определены средами с использованием внешнего xml файл.
Пример 1: JAXB - это сервис для представления объекта Java в виде XML; Эти java-объекты просты и предлагают методы получения и установки конструктора по умолчанию.
Пример 2: Hibernate, где простой Java-класс будет использоваться для представления таблицы. столбцы будут его экземплярами.
Пример 3: Службы REST. В сервисах REST у нас будет Service Layer и Dao Layer для выполнения некоторых операций над БД. Таким образом, у Дао будут запросы и операции, специфичные для поставщика. Сервисный уровень будет отвечать за вызов уровня DAO для выполнения операций с БД. Создание или обновление API (методов) DAO будет принимать POJO в качестве аргументов, обновлять эти POJO и вставлять / обновлять в БД. Эти POJO (класс Java) будут иметь только состояния (переменные экземпляра) каждого столбца и его методов получения и установки.
На практике некоторые люди считают аннотации элегантными, в то время как XML они считают многословными, уродливыми и сложными в обслуживании, в то время как другие считают, что аннотации загрязняют модель POJO.
Таким образом, в качестве альтернативы XML многие инфраструктуры (например, Spring, EJB и JPA) позволяют использовать аннотации вместо или в дополнение к XML:
Преимущества:
Отделение кода приложения от инфраструктурных инфраструктур является одним из многих преимуществ использования POJO. Использование POJO в будущем подтверждает бизнес-логику вашего приложения, отделяя ее от изменчивой, постоянно развивающейся инфраструктуры. Обновление до новой версии или переход на другую среду становится проще и менее рискованным. POJO также облегчают тестирование, что упрощает и ускоряет разработку. Ваша бизнес-логика будет понятнее и проще, потому что она не запутается с кодом инфраструктуры
Ссылки: вики source2