• Java Bean 与Spring Bean 的区别


    什么是JavaBean:

    JavaBean是一种JAVA语言写的可重用组件。JavaBean符合一定规范写的Java类,是一种规范。它的方法命名,构造以及行为必须符合特定的要求:
         1.所有属性为private
         2.这个类必须具有一个公共的(public)无参构造函数
         3.private属性必须提供public的getter和setter来给外部访问,并且方法的命名也必须遵循一定的命名规范
         4.这个类是可序列化的,要实现serializable接口
    JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。

    什么是SpringBean:

    SpringBean是受Spring管理的对象  所有能受Spring容器管理的对象都可以成为SpringBean。Spring中的bean,是通过配置文件、javaconfig等的设置,有Spring自动实例化,用完后自动销毁的对象。让我们只需要在用的时候使用对象就可以,不用考虑如果创建类对象(这就是spring的注入)。

    二者之间的区别:

    用处不同:
      传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处不在,任何组件都可以被称为bean。
    写法不同:
      传统javabean作为值对象,要求每个属性都提供getter和setter方法;但spring中的bean只需为接受设值注入的属性提供setter方法。
    生命周期不同:
      传统javabean作为值对象传递,不接受任何容器管理其生命周期;spring中的bean有spring管理其生命周期行为。

    拓展:

    VO:(View Object表示层对象)
    主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

    DTO:(Data Transfer Object数据传输对象)
    主要用于远程调用等需要大量传输对象的地方。
    比如我们一张表有100个字段,那么对应的PO就有100个属性。
    但是我们界面上只要显示10个字段,
    客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
    这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
     
    PO(Persistent Object持久化对象)
    持久化对象,它跟数据表形成一一对应的映射关系。一般在Dao层使用。如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
     
    DO(Domain Object领域对象
    就是从现实世界中抽象出来的有形或无形的业务实体。

    POJO:(Plain Ordinary Java Object无规则简单Java对象,POJO是一种概念或者接口,身份及作用随环境变化而变化)
    POJO 实质上可以理解为简单的实体类,其中有一些属性(private)及其getter和setter方法的类,没有业务逻辑,也不允许有业务方法,也不能携带有connection之类的方法。POJO 是 JavaEE 世界里面最灵活的对象。
    即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
    POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。
    一个POJO持久化以后就是PO。
    直接用它传递、传递过程中就是DTO
    直接用来对应表示层就是VO
     

    具体流程:

    用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。

    展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。

    服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。

    服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。

    对于一个逆向操作,如读取数据,也是用类似的方式转换和传递,略。

    拓展二:

    EJB (Enterprise Java Beans) 是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。EJB到底是什么?,变成大白话就是,"把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了"。

    推荐文章:https://blog.csdn.net/jojo52013145/article/details/5783677

     
  • 相关阅读:
    2019年1月18日23:20:02 夜盘
    2019年1月16日22:50:28 白糖SR1905
    2018/12/20 20:52:42 螺纹钢PTA豆粕
    2018/12/19 20:55:58 螺纹钢豆粕PTA
    2018-12-18 豆粕
    2018-12-18 19:53 螺纹钢
    记录一下自己的跑步数据
    Xamarin.Lottie---UWP运行出错时的注意事项
    Hitting refresh on my career(译)----重新定义我的事业
    ChatKit for Xamarin.Android 绑定
  • 原文地址:https://www.cnblogs.com/wwct/p/12742347.html
Copyright © 2020-2023  润新知