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学习之--------列表排序(ffilter、sort、indexOf方法的使用)、Vue检测数据变化的原理(2022/7/15)

    文章目录 1.列表排序 1.1 .代码实例 1.2 .测试效果 1.3.需要掌握的前提知识 2.Vue监测数据变化的原理 2.1.代码实例 2.2 .测试效果 3.Vue检测数据的原理 3.1 基本知 ...

  2. Go | 基本数据类型的相互转换

    基本数据类型的相互转换 Go在不同类型的变量之间赋值时需要显示转换,不能自动转换 基本语法 表达式 T(v): 将值v转换成类型T T就是数据类型: int32, int64, float32... ...

  3. Spring Cloud Loadbalancer

    Spring Cloud Loadbalancer---客户端负载均衡器 springcloud 2020.0.1 版本之后 删除了eureka中的ribbon,替代ribbon的是spring cl ...

  4. 微信小程序的学习(二)

    一.数据绑定 1.数据绑定的基本原则 在 data 中定义数据 在 wxml 中使用数据 2.如何在 data 里面定义数据? 在页面对应的 .js 文件中,把数据定义到 data 对象中即可: 3. ...

  5. 【Java并发009】原理层面:ThreadLocal类全解析

    一.前言 在Java多线程模块中,ThreadLocal是比较重要的知识点,虽然ThreadLocal类位于java.lang包,但是这个类基本上仅用于多线程. 二.ThreadLocal类概要 2. ...

  6. Project facet Java version 13 is not supported.

    问题 导入的文件运行时出现报错:Project facet Java version 13 is not supported. 大概就是版本不支持,看了下自己的Java版本是1.8的,修改下版本即可运 ...

  7. 记录下批处理bat脚本获取打包发布问题

    最近做了个Jenkins配合Gitlab自动部署Java项目到Windows Server服务器. Jenkins和Gitlab在Linux下,好一顿折腾,先记录下脚本,其余后续补充吧. 把Java项 ...

  8. Linux C++目标中添加git版本信息

    项目代码根目录下添加一个cmake文件git_version.cmake,内容如下: # get git hash macro(get_git_hash _git_hash) set(ENV{GIT_ ...

  9. 9 STL-queue

    ​ 重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦!  生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦! 写在前面,本篇章主要介绍S ...

  10. ArrayList中的ConcurrentModificationException,并发修改异常,fail-fast机制。

    一:什么时候出现? 当我们用迭代器循环list的时候,在其中用list的方法新增/删除元素,就会出现这个错误. package com.sinitek.aml; import java.util.Ar ...