POJO
POJO(Plain Ordinary Java Object)即普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO。
实际意义就是普通的JavaBeans(简单的实体类),特点就是支持业务逻辑的协助类。
POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
但不允许有业务方法,也不能携带有connection之类的方法,即不包含业务逻辑或持久逻辑等。
Java Bean
JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:
这个类必须有一个公共的缺省构造函数
所谓什么是构造缺省函数
缺省构造函数是在你没有声明构造函数的时候,那是编译器自动生成的默认形式的构造函数,没有参数,也不做任何事情 的构造函数。如果你在类中声明了构造函数(无论是否有参数),编译器将不会生成缺省构造函数,总之,只要是你人为 申明的构造函数,无论是否有参数,都不算缺省构造函数。
这个要看你声明类的对象是怎样的才调用哪个构造函数,比如: class A { public: A(){} A(int n){} };
A a1; //调用的就是无参的构造函数A()
A a2(3); //调用的就是有参的构造函数A(int n)
再如:
class A { //无显式定义构造函数 };
A a; //调用缺省构造函数,也就是系统定义的构造函数,该函数什么也不做
再如:
class A { public: A(int n){} //只有带参数的构造函数
};
A a; //这样是错的,因为没找到A类里面无参的构造函数
这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
这个类应是可序列化的。
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。
JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。
JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。
简而言之,当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。