SpringMVC-POJO 和 java beans区别联系

说实在话,在印象里。这两个概念一直觉得是一样的,分不清他们的区别。今天特地在网上找了一篇文章(谢谢博主@lushuaiyin的分享),觉得讲的很不错。所以分享一下:
什么是POJO
按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

pojo和javabean的比较
pojo的格式是用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。
而javabean虽然数据的获取与pojo一样,但是javabean当中可以有其它的方法。

JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:

这个类必须有一个公共的缺省构造函数。
这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
这个类应是可序列化的。

另外的一些解释:
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。VO即value object值对象主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。DTO (经过处理后的PO,可能增加或者减少PO的属性):Data Transfer Object数据传输对象主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。POJO(POJO是一种概念或者接口,身份及作用随环境变化而变化) :POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口plain ordinary java object 简单java对象即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。 一个POJO持久化以后就是PO。直接用它传递、传递过程中就是DTO直接用来对应表示层就是VO

你可能感兴趣的:(SpringMVC-POJO 和 java beans区别联系)