码迷,mamicode.com
首页 > 编程语言 > 详细

Java 之JavaBean 、EJB 和POJO

时间:2015-10-18 18:06:27      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

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

1.JavaBean

  JavaBean是可复用的Java组件,严格遵循Sun定义的规范要求,JavaBean是一个标准。简单来说一个JavaBean应该有下面几个特点,

  >类应该是public的

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

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

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

 例如:

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.DODomain Object

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

4.5.VOView 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

标签:

原文地址:http://www.cnblogs.com/zhangminghui/p/4889761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!