由于是创业公司,开发人员较少,所以公司临时决定让几个C的程序猿临时客串Java。所以避免不了有很多基础问题,今天就有两个人都问我,JavaBean和POJO的区别,我可按照自己的理解给他们大致说了下,可是仔细一推敲发现自己好像没有那么透彻的讲解很清楚,就查了下资料,记下了一些笔记和理解。

1.JavaBean

  JavaBean(官方解释)是可复用的Java组件,严格遵循Sun定义的规范要求,JavaBean是一个标准,开发者可以直接复用别人写好软件组件而不必理解它内部的工作机制。简单来说一个JavaBean应该有下面几个特点,

  >类应该是public的

  >属性应该private的,对于属性值的访问应该是要通过getXX,setXX,isXXX方法,isXXX是用于检查元素的值是否是Boolean的。

  >该类应该有一个无参的构造函数,元素值的初始化要通过setXXX方法。

  >这个类应该是实现了Serializable 接口(java.io.Externalizable),这个是为了持久化存储的需要。

 例如:

package com.example;

import java.io.Serializable;

public class Bar implements Serializable {

    private String name = null;

    private boolean flag = false;

    public Bar() {
} public String getName() {
return this.name;
} public void setName(final String name) {
this.name = name;
} public boolean isFlag() {
return this.flag;
} public void setFlag(final boolean flag) {
this.flag = flag;
}
}

 2.EJB(Enterprise Java Bean)

  EJB是运行在一个J2EE服务器上的Java类,它用于处理业务逻辑的,应该是这样的:

   >有状态(Stateful)

   >无状态的(Stateless)

     >实体(Entity)

   >消息驱动Bean(Message Driven Beans)

举例(无状态Bean):

 

@Stateless
public class EmployeeServiceBean {
@PersistenceContext
EntityManager em; public void addEmployee(Employee emp) {
em.persist(emp);
}
} Read more: http://www.javaexperience.com/difference-between-pojo-javabean-ejb/#ixzz3otv2sKDE

  说明:因为EJB2.0和EJB被要求是实现EJBobject 接口和指明EJB的部署类型,所以在EJB3.0中引入了注解来简化开发步骤。

3.POJO(Plain Old Java Object)

  一个POJO没有要求去实现了一个接口或者继承一个类,也没有任何的指导信息。POJO最大的不同之处就是它和EJB无关。Java是一个简化的JavaBean,我们之所以叫它是是简化的bean是因为它只用于装载数据而不用业务逻辑的处理。一个持久化的POJO就是PO,如果用于展示层那么它就是VO .

4.扩展

4.1.PO(persistant object ):持久化对象

  持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。

4.2.VO(Value Object)

  一个值对象就是一个含有值的对象,比如java.lang.Integer.VO:通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。

4.3.DAO:data access object

  数据访问对象,是一个sun的一个标准j2ee设计模式 .此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据 库资源中间。配合VO, 提供数据库的CRUD操作。

4.4.DO(Domain Object

  领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

4.5.VO(View Object

  视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

4.6. BO( Business object)

  用于调用DAO的业务逻辑类,并且将PO和VO联合起来进行业务操作。

4.7.DTO(Data Transfer Object)

  主要用于远程调用中的传输对象。比如说,一个100个字段的表就对应于PO中的100个属性,但是我们的接口只需要10个字段。那么我们就可以将只含有十个字段的DTO传递给客户端使用。这不会向客户端暴露表结构,一旦它和接口关联起来,那么它就是VO了。

Java 之JavaBean 、EJB 和POJO的更多相关文章

  1. JavaBean , EJB , spring , POJO

    1996年 , 发布了java bean 1.00-A  当时的java bean有什么用呢 javaBean最初是为Java GUI的可视化编程实现的.你拖动IDE构建工具创建一个GUI 组件(如多 ...

  2. JavaBean,EJB,POJO,Spring Bean 的演进历程

    JavaBean Sun公司对类提出的规范:1,类是public的2,有一个无参构造方法3,属性修饰要用private,通过get set操作4,实现Serializable接口5,对事件使用Swin ...

  3. javaBean、EJB、POJO

    1.JavaBean 最初是由 Sun 公司提出的一种规范,主要包含以下要求: ----类是 public 的,并且有一个无参数的构造函数 ----属性修饰符为:private,并通过 get 和 s ...

  4. JavaBeans、EJB和POJO详解

    转自:http://developer.51cto.com/art/200906/130814.htm J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种轻易理解的角 ...

  5. Java (PO,VO,DAO,BO,POJO,DTO) 几种对象解释

    1. PO:persistant object 持久对象 可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对 ...

  6. ejb 和pojo , jboss 和 tomcat

    EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务.安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系 ...

  7. Java高新技术 JavaBean内省

     Java高新技术  JavaBean内省 知识概要:                 (1)了解JavaBean内省                 (2)JavaBean的简单内省操作     ...

  8. JAVA中JavaBean对象之间拷贝的方法

    JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,有个更简便的方法,他们之间的拷贝可以通过copyPro ...

  9. JAVA中JavaBean对象之间属性拷贝的方法

    JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,对于这种情况,可以采用以下几个简便方法处理. 下面对这 ...

随机推荐

  1. 怎么样eclipse发达国家多重聚合关系maven项目和使用git管理

    最近使用的项目的开发maven,多于maven有项目之间有一定的联系,因此,创建一个单独的,然后,maven聚合管理. 项目采用git要管理代码.由于上传的代码集时,.gitignore不要上传文件. ...

  2. 3.1、Eclipse

    (原版的:http://www.libgdx.cn/topic/22/3-1-eclipse) 生成项目之后,如今我们来将项目导入到Eclipse中. 在将项目导入到Eclipse之前,确定你已经配置 ...

  3. [Sqlite] --> Sqlite于Windows、Linux 和 Mac OS X 在安装过程

    一个:于 Windows 安装 SQLite  1,下载 请訪问SQLite下载页面http://www.sqlite.org/download.html.从Windows 区下载预编译的二进制文件. ...

  4. GMSK调制仿真

    GMSK 调制的的原理非常简单. 就是MSK调制前进行Gauss滤波. 在实现中有这样的方法,首先产生高斯系数,对称的上升陂和下降陂系数.输入一个符号,进行上采样,经过高斯滤波器,滤波器的输出做有符号 ...

  5. (大数据工程师学习路径)第三步 Git Community Book----Git基本用法(上)

    一.git的初始化 1.Git 配置 使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名. $ git config --global user.name &quo ...

  6. 必要的软件架构师——编译原理·语法

    最近软测试.我观看进程的视频! 发现里面有很多内容已经在自我不错的接触过程.而占80%比例! 但其中的一部分.我很奇怪的一部分.研究,在这里,将我研究的内容整理分享给大家! 编译原理: 首先,我第一眼 ...

  7. Maven学习笔记(四):协调和依赖

    Maven协调具体的解释:      Maven定义了这样一组规则:世界上不论什么一个构件都能够使用Maven坐标唯一标识.Maven坐标的元素包含groupId.artifactId.version ...

  8. java线 生产者和消费者

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  9. 20天android学习

    20多天的实习(事实上,一个人学习的东西)要结束, 其余的都只有读研. 此20许多天,我学到了很多东西, 至android的发展也有一定的了解.之后写这篇文章主要是完成研究可以学得很快再次回升 1.安 ...

  10. 迷宫的最短路径 (BFS)

    N*M的迷宫,从起点到终点,求最短距离 宽度优先搜索按照距开始状态由近及远的顺序进行搜索,因此可以很容易的用来求最短路径,最少操作之类问题的答案.  (可以构造成pair或者编码成int来表达状态) ...