一、Bean

对于Bean而言,我的理解是只要是Java的类的就可以称为一个Bean,更用在Spring上,被Spring管理的对象就可以将其称作为Bean。

它不仅仅可以包括对象的属性以及get,set方法,还可以有具体的业务逻辑。

二、Entity

这个最容易理解,其特点是:数据表对应到实体类的映射

三、Model

Model是MVC中一个概念,可能不和Entity一一对应,因为展示在View层中数据可能是一个Entity的精简,也可能是多个Entity的组合。一句话概括:Model是一个高度优化组合或者精简后的一个用于在View层展示数据的对象。

四、POJO

简单Java对象,貌似没有经常提到或作为类的后缀存在,难道是因为其名字太长?

其特点是:除了属性和get、set方法外不包含具体的业务逻辑方法,这个和上文表述的Model很相像,和Entity区别在于没有和数据表中字段一一对应。

总结:实际上entity与pojo与javabean都是JAVA对象,可能有的地方叫法不同,实际上功能都是一样的,唯一不同是用于范围不同,请看下面详细分析。

Java Bean、POJO、 Entity、 VO , 其实都是java 对象,只不过用于不同场合罢了。

按照 Spring MVC 分层结构:

JavaBean:    表示层 (Presentation Layer)

Entity:    业务层 (Service layer)

Dao:   数据访问层 (data access layer)。

Entity接近原始数据,Model接近业务对象~

Entity:是专用于EF的对数据库表的操作,

Model:是为页面提供数据和数据校验的,所以两者可以并存

POJO:POJO是Plain OrdinaryJava Object的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。

POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便 程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类 也给我们

今天突然也在这个问题上迷惑了。上网搜搜,算是明白了一些,姑且记下来,无论对错:

JavaBean: 先说JavaBean,JavaBean更多的是一种规范,也即包含一组set和get方法的Java对象。

POJO: 普通的Java对象,对于属性一般实现了JavaBean的标准,另外还可以包含一些简单的业务逻辑(方法)。

PO: POJO在持久层的体现,对POJO持久化后就成了PO。PO更多的是跟数据库设计层面相关,一般PO与数据表对应,一个PO就是对应数据表的一条记录。

DAO: PO持久化到数据库是要进行相关的数据库操作的(CRUQ),这些对数据库操作的方法会统一放到一个Java对象中,这就是DAO。

BO: POJO在业务层的体现,对于业务操作来说,更多的是从业务上来包装对象,如一个User的BO,可能包括name, age, sex, privilege, group等,这些属性在数据库中可能会在多张表中,因为每一张表对应一个PO,而我们的BO需要这些PO组合起来(或说重新拼装)才能成为业务上的一个完整对象。

VO(Value Object/View Object): POJO在表现层的体现。 当我们处理完数据时,需要展现时,这时传递到表现层的POJO就成了VO。它就是为了展现数据时用的。

DTO(Data Transfer Object): POJO在系统间传递时。当我们需要在两个系统间传递数据时,一种方式就是将POJO序列化后传递,这个传递状态的POJO就是DTO。

EJB(Enterprise JavaBean): 我认为它是一组"功能"JavaBean的集合。上面说了JavaBean是实现了一种规范的Java对象。这里说EJB是一组JavaBean,的意思是这一组JavaBean组合起来实现了某个企业组的业务逻辑。这里的一组JavaBean不是乱组合的,它们要满足能实现某项业务功能的搭配。找个比方,对于一身穿着来说,包括一顶帽子,一件衣服,一条裤子,两只鞋。这穿着就是EJB,其它的就是一个JavaBean。。。。后续。。。。

原文链接:

https://blog.csdn.net/a909422229/java/article/details/70792203

原文:https://www.cnblogs.com/zmwy/p/12591569.html

java中model的意思_开发中model,entity和pojo的区别相关推荐

  1. php开发中常用函数总结,PHP开发中常用函数总结

    PHP开发中常用函数总结 发布于 2014-10-31 08:34:03 | 48 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Preproc ...

  2. python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...

    前言 工欲善其事必先利其器,这也是老生常谈的事情了.在做日常开发中,让我感受到一个顺手的开发工具的重要性.截至目前对于不同语言自己也使用过很多开发工具,有一些简单的编辑器例如:notepad++.Ed ...

  3. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总

    原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...

  4. git stash 强制恢复_开发中必须要掌握的 Git 技巧

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:你喜欢吃青椒么 juejin.im/post/5d157bf3f265da1bcc1 ...

  5. java和Mysql数据一致性_java web开发中数据一致性的问题

    在java web开发中,数据存储介质有如下几种数据库(rdms,nosql) 缓存系统(redis,memcached,ehcache) java内部数据结构(map,list) 文件存储(fast ...

  6. java 判断手机运营商_Java开发中识别手机运营商的方法

    在Java开发中程序需要根据用户输入的号码判断运营商,这该怎么实现呢?而我们需要根据不同的运营商进行相应的处理,下面是爱站技术频道小编介绍的Java开发中识别手机运营商的方法. js实现方法: var ...

  7. java开发中遇到的问题_java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不 ...

  8. git 修改分支名字_开发中必须要掌握的 Git 技巧

    前言 本文是参考杜老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下此文是为以后学习,工作,开发中如果遇到问题可以回过头来参考参考.因为水平有限,难免会有出错的地方,欢迎指正. ...

  9. java 字段映射注解_mybatis注解开发中实体属性和表字段不对应问题

    在项目的实际开发中,有可能会遇到实体类中的属性名与列名不相同,不能改但.导致不能自动装配值的问题,此时可以接合@Results.@Result.@ResultMap实现开发 1.@Results注解 ...

  10. 用vscode编写静态页面_开发中实用的VSCode插件推荐

    本篇文章给大家介绍一下开发中实用的VSCode插件推荐.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 工欲善其事必先利其器,以下是本人为前端开发收集的vscode插件,有需要的话赶 ...

最新文章

  1. 数据库中日期大小的判断
  2. json2.js的初步学习与了解(转)
  3. Tarjan算法_LCA
  4. Java基础知识总结(一)
  5. ​​毕业论文选题三步法
  6. Python教程分享:Python Cookie HTTP获取cookie并处理
  7. 微信小程序分享朋友圈功能
  8. 手动挡五个档位示意图_汽车档位越多越好?听听专业回答
  9. 为什么负数的补码是取反加一
  10. 乐视股票21日起停牌,集成播控平台变“黑屏”
  11. 4-2017-12-2-2约瑟夫环
  12. printf函数重定向
  13. protobuf(Protocol Buffers)java初体验
  14. 粉红噪音测试软件,粉红噪声
  15. 8cm等于多少像素_像素和厘米的换算
  16. x390拆机教程_努比亚拆机换电池教程_pro6拆机换电池教程
  17. 很多网友问那个磁力搜索站好用,就由本君说说吧!
  18. Unity3D开发:向Unity3D中导入外部模型
  19. 云电脑是否可以玩挂机网游
  20. 【poj-1066】判断线段相交

热门文章

  1. Julia: 用Julia操作Redis数据库及一些用法
  2. 【优化算法】人工蜂鸟算法(AHA)【含Matlab源码 1543期】
  3. 【ETWVRP】基于matlab遗传算法求解带时间窗的含充电站车辆路径规划问题【含Matlab源码 1221期】
  4. 【光学】基于matlab GUI光栅实验【含Matlab源码 1176期】
  5. 【数字信号】基于matlab GUI虚拟信号发生器(各种波形)【含Matlab源码 271期】
  6. 【预测模型】基于matlab RLS算法预测【含Matlab源码 222期】
  7. 合振动的初相位推导_如何理解单自由度系统振动
  8. tensorflowgpu利用率为0_「活动」体验新一代主机 天翼云数十款云产品0元试用
  9. python: 在pycharm打开带有中文字符的文件时,乱码,File was loaded in the wrong encoding: ‘UTF-8‘
  10. 【C++】常用排序算法