bean中文解释为:豆; 豆形种子; 毫无价值的东西。
按照上面的意思,很难理解Bean是个什么鬼,Java豆?
我们先来看一个典型的JavaBean,直观地理解下:
public class Person implements Serializable {
private static final long serialVersionUID = -5546084862088951030L;
private String name; //私有属性 public String getName() { return this.name; } public void setName(String name) { this.name = name; } }
下面给出定义,JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少以下条件:
- 提供一个public默认构造方法,例如无参数构造器。
- 所有属性为private。
- 提供getter和setter。get,set方法与属性名需要对应,如getName()。
- 需要序列化。也就是要实现serializable接口,序列化和反序列化可以自行百度。
接下来,我们再看几个易混淆的定义,一起来对比理解。
- EJB
全称Enterprise JavaBean,企业级JavaBean。EJB在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。EJB在JavaBean基础上又提了一些要求,更复杂了。了解下就行了,我们用不到。
- POJO
全称Plain Ordinary Java Object,简单的Java对象。有个叫Josh MacKenzie人觉得,EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的JavaBean(什么是普通,就是和EJB对应的),是为了避免和EJB混淆所创造的简称。总之,区别就是,你先判断是否满足JavaBean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。
好了,知道这么多就够了。