什么是Java bean

来源:互联网 发布:阿里云机房等级标准 编辑:程序博客网 时间:2024/05/18 15:29


一.简洁的说法:
 1、所有属性为private
 2、提供默认构造方法
 3、提供getter和setter
 4、实现serializable接口:序列化id要是不提供,序列化的时候会自动生成一个,带来额外的负担。


二.javabean其实包含多个方面的含义。
 1,顾名思义,bean,保存数据的实体,通常与数据库中的表对应。
 也称为,pojo,entity,domain。比如Person,Apple等,
 只有private属性和public setxxxx和getxxx。具体实例就是对应表
 中的一行。那些hibernate,ibatis等orm框架,都支持它们和表的互相映射。
 2,这个就比较高大上,也比较抽象了。javabean被称为完成特定功
 能的组件。不是有高内聚低耦合的说法么?它就是这样一组java类集合。


三.
不谈概念,只谈用处的话,javabean,或更精确的说是目前更流行的pojo,广泛用于分层开发中进行数据交换。
一般而言,pojo与数据表结构对应。逻辑层与数据层之间只通过 pojo进行交换。如
db.save(pojo);
pojos= db.find(sql);
如此逻辑层不用去考虑复杂的sql拼接问题更关注于具体逻辑过程,从而使系统更有条理。
而表现层与逻辑层之间也可以使用pojo+模板引擎的方式进行处理。
所以个人对javabean的不精准概括就是:javabean是数据的映射。


四.
Java Bean 规范中 bean 的官方定义:“根据 Sun的JavaBean 规范,一个bean就是一个可重用的软件构件,并且能够在开发工具中可视化地操作。”
Bean有一个无参数的构造函数。
属性修饰符为:private 。
所有访问器方法都以get开头,所有的修改器方法都以set开头,get/set 命名模式有一个例外,布尔类型的属性应该使用 is/set 命名模式。
实现接口 java.io.Serializable 。
所有事件类的名字必须以 Event 结尾,并且必须继承自 EventObject 类。EventNameEvent 类型的事件对应监听器接口 EventNameListener 。
JavaBean 持久化,适合于长期存储。用 JavaBean 的属性来将 bean 存储到流中,并在之后的某个时刻,或者在另一个虚拟机中再将它们读回来。

一旦实现了一个bean,其他人能够在开发环境中使用它。与必须编写冗长的代码不同,开发人员可以直接将bean拖拽到GUI表单中,并用对话框来定制它。


五. serializable接口

该接口中一个成员变量或者成员方法也没有,作用是实现序列化。

 序列化:对象的寿命通常随着生成该对象的程序的终止而终止,有时候需要把在
 内存中的各种对象的状态(也就是实例变量,不是方法)保存下来,
 并且可以在需要时再将对象恢复。虽然你可以用你自己的各种各样
 的方法来保存对象的状态,但是Java给你提供一种应该比你自己的
 好的保存对象状态的机制,那就是序列化。

 总结: Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里(系(序)列化),
 并且可以从其它地方把该Byte 流里的数据读出来(反序列化)。

序列化的用途:想把的内存中的对象状态保存到一个文件中或者数据库中时候
  想把对象通过网络进行传播的时候

0 0
原创粉丝点击