JavaBean为何物?

  摘要:初学SSM框架之后,我对JavaBean这个东西开始有了简单的接触,在很久以前听见JavaBean这个词一直以为是一个非常高大上的东西,但是在仔细研究之后发现其本质并没有那么复杂,这篇笔记将主要对JavaBean进行一个简单的概念上的解释

  JavaBean严格意义上将不算是一门技术,而算是一种约定,一种概念。我们在初学Java的时候总会学习面向对象这个概念,而老师在讲面向对象这个概念的时候总会举一些例子帮我们理解什么是对象,比如:人类是类,人类中的一个个体就是对象,人类的具备的所有属性和行为封装在一个人类的集合概念中,这个抽象的概念就是类,而抽象概念中一个具体的个体就是对象。面向对象的思想来自于博物学中的归类,是对世界万物的一个仿生。这样理解确实能够让我们很好的理解什么是类,什么是对象,但是也为我们造成了一个误区,这会让很多初学者认为:Java类总是对应了生活中确实存在的一种物体的集合,如汽车类,衣服类等等。

  而在我们初学JavaBean的时候,有些老师会为了让我们先老实的用,而不是因为思考进入误区,而将JavaBean解释成:Java类,Java类就是JavaBean,这时真正的误差就出现了,如果在这里出现了思想误差,在以后的学习中就会失之毫厘谬以千里。

JavaBean为何物?

  JavaBean是类,但是类不一定是JavaBean,首先我们应该明确在Java语言中,一切都是基于类的,尽管这么说有些夸张,但是在大部分的框架中,Java的信息传递都是通过类来传递的,如SSM项目,就连最基本的Servlet框架,我们也会潜意识的使用类来进行信息的传递,如我们想要从数据库和后台向前台传递一个人的信息,我们通常会先声明一个人类,然后new一个新的人类对象,将信息封装在对象中再传递这个对象,这样一来我们就直接将所有信息传递到了前台,这样做在信息传递的时候非常干净利落,在数据接收端也是非常方便,就像我们从网上买了一堆东西,这些东西打包一次送来总比拆成多个小件货然后零散的发送到各个快递点让我们再去拿好得多。

  JavaBean就是在Java项目中负责进行信息传递的一种类,需要注意的是其针对的东西并不是项目中的角色,而是信息实体,它封装的往往是一些有相关性的信息,这些信息按照一定的方式组合封装,可以表达一种存在实际含义的东西,同时这些信息的传递通常会同时出现,如:登录信息中的账号信息与密码信息,文章信息中的创建时间,文章内容,作者等信息。我们发现这些信息集合并不总是表示一个确实存在的实体,如登录信息,但是它一定是一个信息实体,它是一种有意义的信息组合,这些信息组合经常性的同时出现,而进行一次有意义的行为,这样的有规律的,信息种类固定的信息组合被封装到一个类中,我们就称之为:JavaBean。

  JavaBean因为专职信息传递,因此其有着严格的定义:这个Java类必须具有一个无参的构造函数属性必须私有化私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。只有符合这样的一个约定,一个类才能称之为JavaBean,这就是JavaBean。

  需要注意的是尽管JavaBean表示的往往不是一个角色,但是它大部分的时间还是在做角色信息的传递,毕竟我们的项目中通常做的事情就是对各种各样的角色的信息进行操作,如展示用户信息,修改商品信息等。因此我们在使用的时候一定要时刻提醒自己,尽管我们现在定义的一个JavaBean就是在表示项目中的一个角色,但是,JavaBean的本质含义不是项目中的角色,而是项目中的信息实体,是一个有意义的信息的集合,这个信息的集合有时可以表示一个角色,有时也可以表示其他的有意义的信息。

JavaBean为何物?的更多相关文章

  1. java web学习总结(二十九) -------------------JavaBean的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  2. java web学习总结(二十八) -------------------JSP中的JavaBean

    一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...

  3. JavaBean的用法

    JavaBean是一个可重复使用的软件组件,是用Java语言编写的.遵循一定标准的类. JavaBean是Java Web的重要组件,它封装了数据和操作的功能类,供JSP和Servlet调用,完成数据 ...

  4. JSP复习整理(五)JavaBean使用表单处理数据

    一.先建立用户输入的数据 usingGetparameter.html <!DOCTYPE html> <html> <head> <meta charset ...

  5. JSP复习整理(五)JavaBean生命周期

    一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...

  6. 初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面

    1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响 ...

  7. json、javaBean、xml互转的几种工具介绍

    json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...

  8. 由面试引发的思考:B/S与C/S究竟是何物

    一.现状说明: 就在这金三银四的求职黄金时期,我有幸作为公司的独立技术面试官,拥有最终决定录用权,在倍受上级领导的充分信任下,我也向上级保证,一定要为公司找到合适的人才,就在我满怀信心的情况下面试了一 ...

  9. javabean和jsp动作元素

    model1就是利用了jsp和javabean 的组合来处理问题.jsp页面如果有太多的逻辑代码的话,维护起来和扩展起来是相当的麻烦的.所以jsp的逻辑代码部分都打包到一种java类当中进行编写.这种 ...

  10. J2EE基础之JavaBean

    J2EE基础之JavaBean 1.什么是JavaBean? JavaBean本质上来说就是一个Java类,它通过封装属性和方法成为具有独立功能.可重复使用的,并可以与其他控件通信的组件对象.通过在J ...

随机推荐

  1. 在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作

    文章目录 1.实现的效果 2.前端代码 3.后端controller代码 4.servie层代码 5.serviceImpl层代码 6.mapper层代码 7.xml中的sql语句 8.遇到的问题 8 ...

  2. 齐博x1标签之异步加载标签数据

    为什么要异步加载标签?他有什么好处 如果一个页面的标签太多,又或者是页面中某一个标签调用数据太慢的话,就会拖慢整个页面的打开,非常影响用户体验.这个时候,用异步加载的话,就可以一块一块的显示,用户体验 ...

  3. 不妨试试更快更小更灵活Java开发框架Solon

    @ 目录 概述 定义 性能 架构 实战 Solon Web示例 Solon Mybatis-Plus示例 Solon WebSocket示例 Solon Remoting RPC示例 Solon Cl ...

  4. 题解 CF327A Flipping Game

    前言 数据水的一批,\(\mathcal{O}(n^3)\) 给过我觉得是不应该的. 题意 有一个由 \(0\) 和 \(1\) 组成的序列 \(a_1,a_2,a_3,a_4....,a_n\) . ...

  5. 七、kubernetes污点和容忍

    Kubernetes污点和容忍 一.Taint 和 Toleration介绍 节点亲和性,是 pod 的一种属性(偏好或硬性要求),它使 pod 被吸引到一类特定的节点.Taint 则相反,它使节点能 ...

  6. 精简docker的导出镜像

    Docker 镜像是由多个文件系统(只读层)叠加而成,每个层仅包含了前一层的差异部分.当我们启动一个容器的时候,Docker 会加载镜像层并在其上添加一个可写层.容器上所做的任何更改,譬如新建文件.更 ...

  7. Java 编码那些事(一)

    编码 做Web的同学,最开始一定遇到过乱码问题,工作这么久,一定听说过Unicode, GB2312等编码.典型的记事本选择的四种选项:ANSI,Unicode,Unicode big endian, ...

  8. Android开发 对接微信分享SDK总结

    原文:Android开发 对接微信分享SDK总结 - Stars-One的杂货小窝 公司项目需要对接微信分享,本来之前准备对接友盟分享的,但友盟的分享实际参数太多,而我又只需要对接一个微信分享,于是便 ...

  9. 定位java程序中占用cpu最高的线程堆栈信息

    找出占用cpu最高的线程堆栈信息 在java编码中,有时会因为粗心导致cpu占用较高的情况,为了避免影响程序的正常运行,需要找到问题并解决.这里模拟一个cpu占用较高的场景,并尝试定位到代码行. 示例 ...

  10. 云原生之旅 - 10)手把手教你安装 Jenkins on Kubernetes

    前言 谈到持续集成工具就离不开众所周知的Jenkins,本文带你了解如何在 Kubernetes 上安装 Jenkins,后续文章会带你深入了解如何使用k8s pod 作为 Jenkins的build ...