POJO - это просто старый Java-бин с удаленными ограничениями.Java Beans должен соответствовать следующим требованиям:
- Конструктор по умолчанию без аргументов
- Следуйте соглашению Bean-функций getFoo (или isFoo для логических значений) и методов setFoo для изменяемого атрибута с именем foo;не включайте setFoo, если foo является неизменяемым.
- Необходимо реализовать java.io.Serializable
POJO не требует ни одного из них.Это как раз то, что говорит название: объект, который компилируется в JDK, может считаться простым старым Java-объектом.Нет сервера приложений, нет базовых классов, нет интерфейсов, необходимых для использования.
Аббревиатура POJO была реакцией против EJB 2.0, которая требовала нескольких интерфейсов, расширенных базовых классов и множества методов для выполнения простых задач.Некоторые люди, в том числе Род Джонсон и Мартин Фаулер, восстали против сложности и искали способ реализации решений масштаба предприятия без необходимости писать EJB.
Мартин Фаулер придумал новую аббревиатуру.
РодДжонсон написал «J2EE Without EJBs», написал Spring, оказал достаточное влияние на EJB, поэтому версия 3.1 очень похожа на Spring и Hibernate, и получил от него приятное IPO от VMWare.
Вот пример, который можно обернутьваша голова вокруг:
public class MyFirstPojo
{
private String name;
public static void main(String [] args)
{
for (String arg : args)
{
MyFirstPojo pojo = new MyFirstPojo(arg); // Here's how you create a POJO
System.out.println(pojo);
}
}
public MyFirstPojo(String name)
{
this.name = name;
}
public String getName() { return this.name; }
public String toString() { return this.name; }
}