JavaBean的定义

在读文章之前,我想告诉大家三点

1.本文介绍的JavaBean与企业JavaBeans(EJB)没有任何关系。

2.本文介绍JavaBean是结合 标准的JavaBean(现在用的很少)与我们日常web开发所说的JavaBean,二者在集合属性的定义上还是有不同的。

3.只所以介绍一下与客户端开发相关的标准JavaBean,是想为介绍JavaBean的持久化技术做一下铺垫。

JavaBean的定义

sun对JavaBean的定义:在软件开发过程中以重用的软件构件,并且能够在开发工具中进行可视化的本地操作。

可视化操作就是在开发工具中,对JavaBean进行拖拽键入属性,不用再自己写代码。在开发Swing时很常见。

由此可见,JavaBean定义源于客户端Swing,AWT开发

个人理解其实JavaBean就是一个普通的java类对其应用了标准的命名模式。标准的命名模式通常指: 用get/set来定义属性(is/set来定义boolean属性),通常还会有一个无参的构造器。

随着B/S盛行,JavaBean也在web开发中开始用到

在web开发过程中使用JavaBean的最大好处是: 利用其标准的命名模式,可以通过反射可以对JavaBean进行构造,属性赋值,调用方法。比如说Spring的依赖注入,Struts2的params拦截器等等。

JavaBean的属性

对于标准的JavaBean,即对于客户端的开发来说,有四类属性。

1.简单属性: 一个字符串或者基本数据类型,包装器类型

2.索引属性:数组,集合,映射表

3.绑定属性:与Swing事件相关

4.约束属性:用的很少,在此不介绍

对于简单属性,一对get/set方法就可以定义,但对于索引属性,却需要2对get/set方法,比如说数组:

    private String[] arrays;

    public String[] getArrays() {
        return arrays;
    }

    public void setArrays(String[] arrays) {
        this.arrays = arrays;
    }

    public void setArrays(int i ,String str){
        this.arrays[i] = str;
    }

    public String getArrays(int i){
        return this.arrays[i];
    }

瞧,这与web开发中定义JavaBean的数组属性完全不一样。在web开发过程中,我们把所有的数据类型,基本数据类型或者引用数据类型都视为简单类型。即一对get/set方法定义。

下图就是一个Web开发中常说的JavaBean的例子
“`
public class Book {

private Integer id;

private String name;

private List authors;

public Book() {
    // TODO Auto-generated constructor stub
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public List getAuthors() {
    return authors;
}

public void setAuthors(List authors) {
    this.authors = authors;
}

}

你可能感兴趣的:(java)