都只是规范和标准
广义javaBean:一个普通的java类。
狭义javaBean:遵循了一定规范的java类(这里的规范有两点)。
第一:属性首字母小写而且是被private关键字修饰(OOP原则:隐藏数据)
第二:属性有对应的getters和setters方法(目的:读值和改值,对数据控制起来更加灵活)
使用javaBean的好处(结合servlet连接数据库理解):
封装好各种常用的方法,不用重复写,而是用的时候直接调用。
比如:连接数据库常用的方法没必要每次都写一遍,而是统一封装到一个类里面,用到的时候直接调用,使用javaBean的原理和把连接数据库常用的方法封装到一个类里面意思是一样的。
javaBean只是规范,不是技术,不是工具
JavaBean 是一个规范(标准),你可以下载 JavaBeans Spec 了解具体内容,总的来说,
JavaBean 只是定义了简单的编码规范:
JavaBean 需要实现 java.io.Serializable 接口
为了保存对象的状态JavaBean 需要提供 public 修饰的无参构造方法
为了实例化对象为 private 修饰的字段提供 setter/getter为了获取和设置字段的值
是为了取代ejb,用轻量级的pojo实现事务而已。
Java语言欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。Java Bean正是编写这套胶水代码的惯用模式或约定。这些约定包括getXxx、setXxx、isXxx、addXxxListener、XxxEvent等。
让用户一开始就使用getSize,以便有朝一日修改getSize实现时,不破坏向后兼容性。这种public int getSize() { return size; }的惯用手法,就是Java Bean。
最近又在看,里面很详细讲解上面名词来历:
在java1996年发布,当年12月即发布了java bean1.00-A,有什么用呢?通过统一的规范可以设置对象的值(get,set方法),这是最初的java bean;
在实际企业开发中,需要实现事务,安全,分布式,javabean就不好用了.
sun公司就开始往上面堆功能,这里java bean就复杂为EJB;EJB功能强大,但是太重了.
此时出现DI(依赖注入),AOP(面向切面)技术,通过简单的java bean也能完成EJB的事情,这里的java bean简化为POJO;
Spring诞生了.
PO(persistence object):用于持久化时(例如保存到数据库或者缓存);
VO(value object):用于前端展示使用(例如放置到JSP中解析或者给前端传递数据)
DTO(data transfer object):用于接口互相调用返回,数据传输(例如很多接口调用返回值或消息队列内容);

主要区分三个:JavaBean,EJB,POJO。
JavaBean
JavaBean是公共Java类,但是为了编辑工具识别,
需要满足至少三个条件:
有一个public默认构造器(例如无参构造器,)
属性使用public 的get,set方法访问,也就是说设置成private,
同时get,set方法与属性名的大小也需要对应。
例如属性name,get方法就要写成,public String getName(){},N大写。
需要序列化。这个是框架,工具跨平台反映状态必须的最近看,里面讲到JavaBean最初是为Java GUI的可视化编程实现的.

你拖动IDE构建工具创建一个GUI 组件(如多选框),其实是工具给你创建java类,并提供将类的属性暴露出来给你修改调整,将事件监听器暴露出来.
《java 编程思想(第四版)》p823-824EJB在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。

然后有提高了协议要求,就出现了Enterprise Bean。
EJB在javabean基础上又提了一些要求,当然更复杂了。

POJO有个叫Josh MacKenzie人觉得,EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的javabean,什么是普通,就是和EJB对应的。
总之,区别就是,你先判断是否满足javabean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。

javaBean特点:
1、所有属性为private
2、提供默认构造方法
3、提供getter和setter
4、实现serializable接口

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

javaBean的本质:符合一定规范编写的Java类,不是一种技术,而是一种规范。
Bean是一个可重用的软件构件,能够在开发工具中可视化地操作。
Bean有一个默认的无参构造器。属性修饰符为:private 。实现接口 java.io.Serializable 。
所有访问器方法都以get开头,所有的修改器方法都以set开头,布尔类型的属性最好使用 is/set 命名模式。
JavaBean 持久化,适合于长期存储。
用 JavaBean 的属性来将 bean 存储到流中,并在之后的某个时刻,或者在另一个虚拟机中再将它们读回来。

JavaBean是一个特殊的Java类.
JavaBean是一种规范,需要提供一个默认的无参构造函数;需要被序列化;有一系列的可读可写属性;有一系列的getter和setter方法.