POJO
全称是 Plain Old Java Object,翻译为“纯洁老式的java对象”,一般都使用“简单java对象”来称呼。为什么这么说呢?原因是POJO类没有从任何类继承,也没有实现任何接口,更没有被其他框架侵入的java对象。POJO类只有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。

package com.test;
/*** 简单POJO类* * @author Nocol**/
public class User {private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

JavaBean
JavaBean 是一种JAVA语言写成的 可重用组件。JavaBean符合一定规范编写的Java类,不是一种技术,而是一种规范。大家针对这种规范,总结了很多开发技 巧、工具函数。符合这种规范的类,可以被其它的程序员或者框架使用。它的方法命名,构造及行为必须符合特定的约定:

1、所有属性为private。

2、这个类必须有一个公共的缺省构造函数。即是提供无参数的构造器。

3、这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。

4、这个类应是可序列化的。实现serializable接口。

因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。

package com.test;import java.io.Serializable;
/*** JavaBean* @author Nocol**/
public class User1 implements Serializable {private static final long serialVersionUID = 1L;private String name;private String password;public User1() {super();// TODO Auto-generated constructor stub}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}/*** 定义其他方法*/public void test(){System.out.println("JavaBean 中的其他方法");}
}

POJO和JavaBean两者有什么区别?

POJO其实是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。POJO的格式是用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。而javabean虽然数据的获取与POJO一样,但是javabean当中可以有其它的方法。

EJB

EJB(Enterprise JavaBean)是一种javabean的组合规范。我们可以认为它是一组"功能"JavaBean的集合。上面说了JavaBean是实现了一种规范的Java对象。这里说EJB是一组JavaBean,的意思 是这一组JavaBean组合起来实现了某个企业组的业务逻辑。这里的一组JavaBean不是乱组合的,它们要满足能实现某项业务功能的搭配。

在 J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话 Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

1.Session Bean用于实现业务逻辑。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 这个类一般用单例模式来实现,因为每次连接都需要用到它。

2.Entity Bean是域模型对象,仅作为普通Java对象(POJO)来使用。用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象。

3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。

EJB与 JavaBean的区别 ?

JavaBean是一个组件,而EJB就是一个组建框架。JavaBean面向的是业务逻辑和表示层的显示,通过编写一个JavaBean,可以将业务逻辑的事件和事务都放在其中,然后通过它的变量属性将所需要的内容在表示层传递显示。

运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了。因此EJB可以看作是运行在EJB容器中的JavaBean。

EJB没有用户界面,完全位于服务器端,EJB可以多个JavaBean组成,规范说明详细说明了EJB容器需要满足的需求以及如何和EJB构件相互协作。EJB可以和远程客户端程序通信,并提供一定的功能,根据规范说明,EJB是Client/Server系统的一部分,如果不和客户端程序交互,EJB一般不执行具体的功能。EJB和JavaBean的一个重要区别是EJB提供了网路功能。

例子:
网络购物,虚拟购物车属于javabean,而定单处理属于ejb. 这里,虽然购物车的属性是用户可以看见的,但是实际上更新购物车的属性,比如有什么商品在其中,目前总价格统计,还是要放到服务器那处理的吧...那么我可能就直接将购物车写成一个JAVA对象,放在一个beans的包内,然后在action层中将购物车的bean信息给直接更新掉再发送回去.那么按此做法,实际上此javabean的处理依然还是在服务器上进行运算再过来的,用户不过是看的到此对象的一些显性结果而已.

POJO、JavaBean、EJB的区别相关推荐

  1. POJO JAVABEAN EJB的区别和联系

    POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通 ...

  2. JavaBean,POJO,EJB的区别

    JavaBean是标准的Java类,包括了属性,方法,事件,作用域是公共的目的是为了让所有的类都可以使用,有默认的无参构造,有默认的无参构造是为了通过框架的反射进行实例化,需要序列化实现Seriali ...

  3. javaBean,pojo与EJB的区别

    文章引自B站up,心静思远-9527 JavaBean 是一个标准的Java类,它包括属性.方法.事件, 它的作用域是公共的,目的是为了让所有类都可以使用: 有默认的无参构造,目的是为了可以通过框架反 ...

  4. POJO、JavaBean和EJB的区别

    1.POJO(Plain Old Java Object) "Plain Old Java Object"的意思是"纯朴旧式的java对象",现在大家也称它作& ...

  5. JavaBean 与 EJB 的区别

    JavaBean在一般情况下指的是实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的  setter.getter方法,如果一个JavaBean需要在不同的JVM的进程中进行传 ...

  6. 在JSP中调用JAVA类和使用JavaBean有什么区别?

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean   />调用Jav ...

  7. (转)在JSP中调用JAVA类和使用JavaBean有什么区别?

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean   />调用Jav ...

  8. servlet与Javabean之间的区别

    servlet与Javabean之间的区别 在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<js ...

  9. 实体entity、JavaBean、Model、POJO、domain的区别

    From: https://blog.csdn.net/u011665991/article/details/81201499 Java Bean.POJO. Entity. VO , 其实都是jav ...

最新文章

  1. 25 年汽车技术老兵亲述,自动驾驶新驶向
  2. 一步一步玩控件:自定义TabControl——从山寨Safari开始
  3. 计算机在管理会计应用中的作用,计算机在现代管理会计中的应用(共3736字).doc...
  4. 鸿蒙系统电视k歌,华为电视怎么k歌?看完两分钟快速开启K歌模式
  5. 7-5 排列的字典序问题 (10 分)(思路加详解全排列问题+vector容器做法)Come Baby!
  6. stax 和jaxb 关系_XML解组基准:JAXB,STAx,Woodstox
  7. 老司机普及的c++入门心得!
  8. zabbix 3.0 监控windows 部署
  9. 13 SD配置-企业结构-分配-给销售办公室分配销售组
  10. 正则表达式学习笔记008--字符组简记法2
  11. HoudahSpot 6 for Mac(支持内容高亮的搜索神器)支持m1
  12. Jquery中extend的理解以及常见用法
  13. 音频系统测试软件:Smaart for Mac
  14. 天思 erp win7安装提示服务器上没有文件信息,关于天思ERP 9.2客户端无法安装的问题...
  15. xenu死链接工具使用
  16. 清华同方的计算机硬件设置,清华同方台式计算机如何设置BIOS引导U盘教程
  17. 高校实验室设备预约管理系统
  18. GPU编程--CPU和GPU的设计区别
  19. 北信源 华为鸿蒙,华为鸿蒙生态加速!北信源率先参与其中
  20. OpenGL3.3深度测试

热门文章

  1. 【.NET】EF框架之三种模式
  2. 深入CC3200(1)—芯片简介及学习方法
  3. 天池大赛--ICPR Text Detection总结
  4. ICPR 2018|阿里巴巴读光OCR及MTWI数据集亮相引关注
  5. js中字符串截取函数及其方法
  6. 全国计算机电脑系统有问题吗,笔记本重装系统对电脑有影响吗
  7. 表单提交 onsubmit=return false
  8. 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
  9. DBEX-1-6-2015数据库开发技术
  10. H.266/VVC-VTM代码学习18-自适应QP设置(Adaptive QP)