学习笔记整理:POJO、JavaBean、DAO、EJB的概念的区别与联系
来源:互联网 发布:霸主软件官方正版 编辑:程序博客网 时间:2024/06/13 00:53
前言:最近在看Java框架Spring,里面提及了一些简单的概念,在这里总结一下。
1、POJO
POJO(Plain Old Java Object,简单Java对象)
POJO的含义:
其实就是一个遵循了最简单的设计规范的Java类:
1)有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。
2)没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
3)可以有一些简单的运算属性在里面,但是不能有业务方法,不包含业务逻辑或持久逻辑(持久逻辑可以理解为可被序列化,从而可以从掉电丢失的内存中储存至磁盘或者其它存储介质中)。
来看一个POJO例子(摘自百度百科):
public class User { //声明一些私有属性 private String name; private int age; //定义name和age的getter和setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展(继续往后有介绍),从而胜任多个场合。
2、JavaBean
JavaBean (Java豆子?哈哈)是一种JAVA语言写成的可重用组件。同样的,JavaBean是符合一定规范编写的Java类。它的方法命名,构造及行为必须符合特定的约定:
1、所有属性为private。
2、这个类必须有一个公共的缺省构造函数。即是提供无参数的构造器。
3、这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
4、这个类应是可序列化的。实现serializable接口。
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。
来看一个JavaBean例子(同样摘自百度):
public class UserInfo implements java.io.Serializable{ //实现serializable接口。 private static final long serialVersionUID = 1L; private String name; private int age; //无参构造器 public UserInfo() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //javabean当中可以有其它的方法 public void userInfoPrint(){ System.out.println(""); } }
从上面可以看出,一个JavaBean由3部分组成:
(1) 属性(properties)
JavaBean提供了高层次的属性概念,属性在JavaBean中不只是传统的面向对象的概念里的属性,它同时还得到了属性读取和属性写入的API的支持。属性值可以通过调用适当的bean方法进行。
比如,可能bean有一个名字属性,这个属性的值可能需要调用String getName()方法读取,而写入属性值可能要需要调用void setName(String str)的方法。
每个JavaBean属性通常都应该遵循简单的方法命名规则。
(2) 方法(method)
JavaBean中的方法就是通常的Java方法,它可以从其他组件或在脚本环境中调用。默认情况下,所有bean的公有方法都可以被外部调用,但bean一般只会引出其公有方法的一个子集。
(3) 事件(event)
Bean与其他软件组件交流信息的主要方式是发送和接受事件。我们可以将bean的事件支持功能看作是集成电路中的输入输出引脚:工程师将引脚连接在一起组成系统,让组件进行通讯。有些引脚用于输入,有些引脚用于输出,相当于事件模型中的发送事件和接收事件。
由此可见,JavaBean确实也是普通的Java对象,只不过它遵循了一些特别的约定而已。大家针对这种规范,总结了很多开发技巧、工具函数。符合这种规范的类,可以被其它的程序员或者框架使用。
JavaBean与POJO的区别:
POJO其实是比JavaBean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。POJO的格式是用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。而Javabean虽然数据的获取与POJO一样,但是JavaBean当中可以有其它的方法。
3、DAO
DAO(data access objects,数据访问对象)
DAO一般有接口和该接口的实现类,接口用于规范实现类。实现类一般用于操作数据库,如对数据库进行修改、添加、删除等操作,一般直接调用公共类DAO。
与DAO相关的三个概念也应该是我们需要了解的:DTO(data transfer object)、VO(value object)PO(persistent object)、BO(business object)。
PO是指我们通过DAO来将POJO持久化。(将POJO保存起来哈哈)然后用PO组装出来VO、DTO。
在网上找了一个比如(脑袋炸了不想自己打比方哈哈):我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEBservice来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
最后还有一个BO,这是 POJO在业务层的体现,对于业务操作来说,更多的是从业务上来包装对象,如一个User的BO,可能包括name, age, sex, privilege, group等,这些属性在数据库中可能会在多张表中,因为每一张表对应一个PO,而我们的BO需要这些PO组合起来(或说重新拼装)才能成为业务上的一个完整对象。
4、EJB
EJB(Enterprise JavaBean),它是一组”功能”JavaBean的集合,通常是为了解决企业大型软件的面向服务开发难题(包括但不限于服务接口定义、服务间通信、事务控制、内容持久化等)开发了一套用于web环境专用的JavaBean,是一组构建企业级web应用的专用javaBean。
EJB是一套重量级的企业应用开发框架,使用者须遵循其规则开发具体业务逻辑。另外多说一句,SSM是轻量级的,所以我就在看其中的Spring哈哈。
- 学习笔记整理:POJO、JavaBean、DAO、EJB的概念的区别与联系
- POJO JAVABEAN EJB的区别和联系
- JavaBean、pojo、ejb的区别和联系
- POJO JAVABEAN EJB 的区别和联系
- POJO、JavaBean、EJB的区别
- POJO EJB JAVABEAN 的区别
- javabean, ejb, entitybean的区别,以及POJO的概念
- javabean, ejb, entitybean的区别,以及POJO的概念
- 关于JavaBean/EJB/POJO/Entity的概念
- POJO和JavaBean的区别和联系
- pojo与JavaBean的区别
- POJO与javabean的区别
- POJO 与 JavaBean 的区别
- POJO与JavaBean的区别
- pojo 与javabean的区别
- POJO与JavaBean的区别
- dao、pojo、javabean的定义
- POJO是什么,javabean是什么,以及POJO与javabean的区别
- Android开发-android studio 安装教程
- JS判断手机终端并自动跳转
- java 结合内部类与外部类的静态(static)与非静态的用法
- 初级学者必看
- Linux—防火墙Iptables命令使用示例
- 学习笔记整理:POJO、JavaBean、DAO、EJB的概念的区别与联系
- ubuntu16.04 Chromium浏览器使用shadowsocks-qt5代理设置
- css总结脑图
- java匿名内部类的使用场景
- css课程学习总结
- 筛素数
- caffe中的Slice层
- 从MVC到前后端分离
- 写JavaScript发现的问题