博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJO与javabean的区别
阅读量:6772 次
发布时间:2019-06-26

本文共 1423 字,大约阅读时间需要 4 分钟。

POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范) 。
 

错误的认识

POJO是这样的一种“纯粹的”JavaBean,在它里面除了JavaBean规范的方法和属性没有别的东西,即private属性以及对这个属性方法的public的get和set方法。我们会发现这样的JavaBean很“单纯”,它只能装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。
 

真正的意思

POJO = "Plain Old Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口如,EJB,JDBC等等。
即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
下面是摘自Martin Fowler个人网站的一句话:
"We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely."--Martin Fowler
我们疑惑为什么人们不喜欢在他们的系统中使用普通的对象,我们得到的结论是——普通的对象缺少一个响亮的名字,因此我们给它们起了一个,并且取得了很好的效果。——Martin Fowler

转载于:https://www.cnblogs.com/xtdxs/p/6535118.html

你可能感兴趣的文章
Eclipse自动输入提示
查看>>
奥巴马专用直升机被曝飞机蓝图被伊朗P2P用户分享
查看>>
mysql的timeout
查看>>
华为失意老员工的感悟:失去梦想,我们还能拥有什么?
查看>>
[WP8.1UI控件编程]Windows Phone理解和运用ItemTemplate、ContentTemplate和DataTemplate
查看>>
UltraISO制作U盘启动盘安装Win7/9/10系统攻略
查看>>
自建mail服务器之二:hmailserver
查看>>
如果有一天,我老无所依,请把我埋在新闻里!
查看>>
高效使用hibernate-validator校验框架
查看>>
紫斑案
查看>>
关于测试人员的职业发展
查看>>
Gnu C API使用指南
查看>>
来来,一起设计一个简单的活动发布系统
查看>>
VisualStudio基本使用(2)-使用VS2013来编译C语言程序
查看>>
Nexus6p:正在下载系统更新,没有进度
查看>>
【JSP手记】--jsp里面session.getAttribute("×××")在java中的表示
查看>>
PhoneGap1.3基于Android平台的搭建
查看>>
终端下使用Emacs的一些Tips
查看>>
BZOJ2082 : [Poi2010]Divine divisor
查看>>
『TensorFlow』第二弹_线性拟合&神经网络拟合_恰是故人归
查看>>