软件组件可分为两类:可视化软件组件、非可视化软件组件
javaBean技术是一种跨平台体系结构的API,用于创建动态的java软件组件。
一个javabean由3部分组成,属性、方法和事件。
Javabean的特性:属性、定制、通信、持续、内省
内省:组件可以通过reflection获知bean内部的属性,方法和事件,通过两种方式支持内省,命名按照一定规则,通过反射获知;另一种是通过BeanInfo接口(类)。
通信:通过事件交互,propertyEvent
javaBean的属性分类:
简单,索引,绑定,限定,(可同时有多个类型)
绑定属性指的是,在属性被修改时向其它对象发出事件的属性(通过propertyChangeEvent)。
限制属性指的是,监听器对象可以否决属性的修改(在vetoableListener事件中)。被否决的属性值的修改将抛出PropertyVetoException。在set方法中只要我们检测到了这个异常,那么我们不改变bean中属性的值。这时有个问题,假设有3个监听器,其中第二个出了异常,那么这时候第一个监听器已经修改了值,怎么办?其实好办,再new一个propertyChangeEvent,但是将其中的oldValue和newValue互换,调用set方法。如歌这个时候仍产生veto异常,我们忽略就可以了。具体方法参见VetoableChangeSupport。在使用中多使用vetoablechangesupport类。