说实在话,在印象里。这两个概念一直觉得是一样的,分不清他们的区别。今天特地在网上找了一篇文章(谢谢博主@lushuaiyin的分享),觉得讲的很不错。所以分享一下:
什么是POJO
按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
pojo和javabean的比较
pojo的格式是用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。
而javabean虽然数据的获取与pojo一样,但是javabean当中可以有其它的方法。
JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:
- 这个类必须有一个公共的缺省构造函数。
- 这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
- 这个类应是可序列化的。
-----------------
POJO你当成JavaBeans的一种,一个特例:简单的实体类。
就是一个数据载体。
区别一:
POJO就是一个数据载体 一般是没有业务处理能力。
区别二:
POJO是new创建,由GC回收。
JAVABEAN一般由容器来管理,
比如你看到的scope属性,设个范围比如session,谁去帮你管?
不是GC不是你自己,而是容器。
给你举个例子 不算太标准的例子,但是便于你理解:
一个学生类
Student{
id;
name;
get()
set();
}
这个就叫POJO
什么又是javabean?
一个学生bean
StudentBean implements Serializable { //这里
id;
name;
get()
set();formatName(); // 这里
}
这个实现序列号,具备了格式化名字的业务逻辑处理能力,
就不再是一个POJO而变成一个JavaBean了。
javabean就是一个可重用组件,并实现Serializable接口。
举个通俗的说法
在一个页面,注册,交互的是跟 javabean,处理一下输入的名字。
名字非法,不合格 就发送通知。