hackftz

bits change world

导航

理解 JAVABEAN EJB POJO

Posted on 2019-08-01 08:35  hackftz  阅读(116)  评论(0编辑  收藏  举报
《Spring实战》第一章:基本理念、各类名称熟语
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
POJO的内在含义:有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。


JavaBeans:JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在Java(包括JSP)中可重复使用的Java组件的技术规范,也可以说成我们常说的接口。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的 .java文件 ,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被实例之后,这就是我们面向对象的对象,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。总之,就是Java中的接口、类和对象。
它的方法命名,构造及行为必须符合特定的约定::
1、所有属性为private。
2、这个类必须有一个公共的缺省构造函数。即是提供无参数的构造器。
3、这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
4、这个类应是可序列化的。实现serializable接口。 
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。

JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。

EJB


序列化和反序列化 Serializable 
如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。
静态static的属性,不序列化。
serialVersionUID:再序列化的时候Java根据model属性相关计算出来的。(再实现这个Serializable 接口的时候,一定要给这个serialVersionUID赋值,可以设置1L)
类通过实现 java.io.Serializable 接口以启用其序列化功能。
未实现此接口的类将无法使其任    何状态序列化或反序列化。
可序列化类的所有子类型本身都是可序列化的。因为实现接口也是间接的等同于继承。
序列化接口没有方法或字段,仅用于标识可序列化的语义。

关于序列化和反序列化文章:https://blog.csdn.net/u013870094/article/details/82765907    

POJO:Spring的非侵入编程模型意味着这个类在Spring应用和非Spring应用中都可以发挥同样的作用。
依赖注入:
在构造的时候将实例参数做为构造器参数传入。