POJO
POJO是"Plain Ordinary Java Object"的缩写,即为简单普通的java对象。主要用来指代那些没有遵循特定的java对象模型,约定或者框架的对象。
POJO主要有两个特点:
- 对象属性为private,然后针对每一个属性定义get和set方法访问的接口。
- 没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
JavaBean
JavaBean 是一种Java语言写成的可重用组件,符合一定规范编写的Java类。JavaBean不是一种技术,而是一种规范。它的方法命名,构造及行为必须符合特定的约定:
- 所有属性为private
- 必须有一个公共的缺省构造函数
- 属性使用getter和setter来访问,其他方法遵从标准命名规范
- 可序列化的,即实现serializable接口
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
区别
- POJO其实是比JavaBean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。
- POJO主要用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。
- JavaBean虽然数据的获取与POJO一样,但是JavaBean当中可以有其它的方法且JavaBean可以持久化。
- POJO对象更好移植和理解,JavaBean因为可能包含业务逻辑,在移植和理解方面要差一些