JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
优点
- Bean可以控制它的属性、事件和方法是否暴露给其他程序。
- Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
- 有软件可用来配置Bean。
- Bean的属性可以被序列化,以供日后重用。
规范
- 有一个public的无参数建构元。
- 属性可以通过get、set、is(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问。
- 可序列化。
package player; public class PersonBean implements java.io.Serializable { /** * name 属性(注意大小写) */ private String name = null; private boolean deceased = false; /** 无参构造器(没有参数) */ public PersonBean() { } /** * name 属性的Getter方法 */ public String getName() { return name; } /** * name 属性的Setter方法 * @param value */ public void setName(final String value) { name = value; } /** * deceased 属性的Getter方法 * 布尔型属性的Getter方法的不同形式(这里使用了is而非get) */ public boolean isDeceased() { return deceased; } /** * deceased 属性的Setter方法 * @param value */ public void setDeceased(final boolean value) { deceased = value; } }
TestPersonBean.java
:
import player.PersonBean; /** * <code>TestPersonBean</code>类 */ public class TestPersonBean { /** * PersonBean 类测试方法的main函数 * @param ARGS */ public static void main(String[] args) { PersonBean person = new PersonBean(); person.setName("张三"); person.setDeceased(false); // 输出: "张三[活着]" System.out.print(person.getName()); System.out.println(person.isDeceased() ? " [已故]" : " [活着]"); } }
- java.beans.beancontext,提供与 bean 上下文有关的类和接口。bean 上下文是一个 bean 的容器,它定义所包含 bean 的执行环境。
- 但单个 bean 上下文中可能有几个 bean,一个 bean 上下文可以嵌套在另一个 bean 上下文中。
- 此包还包含将在某个 bean 上下文中添加和移除的 bean 的事件及侦听器接口。