JavaBean、POJO、EJB三者的区别

1. JavaBean

JavaBean 是一种JAVA语言写成的可重用组件,包含属性(Properties)、方法(Methods)、事件(Events)等特性。

它的类必须是具体的和公共的(为了让所有类都可以使用),

它具有无参数的构造器(为了可以通过框架反射进行实例化),

它需要序列化且实现Serializable(为了让这个对象可以序列化和反序列化进行传输和保存到文件),

它的属性可读写,可以使用get、set 方法读写和保护属性,也可以通过反射读写属性。

2. POJO

POJO(Plain Ordinary Java Object)普通Java对象,实际就是普通JavaBeans,不用继承或者实现任何接口,不用遵从框架的定义,不用担当任何业务对象角色,只能装载数据作为数据存储的载体,它是为了避免和EJB混淆所创造的简称。给POJO加上序列化、无参构造、get 、set。那它就是一个JavaBean。

3. EJB

EJB(Enterprise Java Beans), 企业Java Beans,是J2EE的一部分,用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。

分为会话Bean(Session Beans),实体Bean(Entity Beans)和消息驱动Bean(Message Driven Beans ,MDBs)

EJB的三种Bean

Session Bean

用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 这个类一般用单例模式来实现,因为每次连接都需要用到它。

Entity Bean

是域模型对象, 用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个 Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

MessageDriven Bean

是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。适合于需要异步处理请求的场合。

注:Spring框架的功能就是,使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

4. 补充

POJO: 是一种规范;entity,model,domain,DTO其实都是POJO

Entity:一个entity对应数据库的一张表

Model:前端需要的信息(对entity的转译),比如一个User的entity中的性别,在数据库中是0和1, 传给前端却是男女;所属部门在entity是部门ID,传给前端的时候需要展示部门名称

Domain: 是一个比较大的范畴,比如一个人的简历,有基本信息,工作经历,项目经历等等;他们可能对应若干个model,但是前端希望后端返回给它一个对象就搞定,那么这样的包含多个model的数据对象叫domain;但我们一般极少使用domain的概念

VO(页面对象):用来和前端进行交互的数据类;实际经验中 VO等同于Domain

DTO(数据传输对象):专门用来接受前端传递到后端的数据对象

PO(持久化对象):数据库中的一条数据即一个BO对象,也是POJO经过持久化后的对象

BO(业务对象):一般用在业务层,当业务比较复杂,用到比较多的业务对象时,可用BO类组合封装所有的对象一并传递

DAO(数据传输对象):就是一般所说的DAO层,用于连接数据库与外层之间的桥梁,并且持久化数据层对象

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发
墨初的头像-墨初小屋

昵称

取消
昵称表情代码图片