## Conceptos sobre los JavaBeans

El API JavaBeans permite escribir componentes software en Java. Los componentes son unidades software reutilizables y auto-contenidas que pueden ser unirse visualmente en componentes compuestos, applets, aplicaciones y servlets utilizando herramientas visuales de desarrollo de aplicaciones.

Los componentes JavaBean son conocidos como Beans. Una herramienta de desarrollo que soporte JavaBeans, mantiene los Beans en un paleta o caja de herramientas. Se puede seleccionar un Bean de la paleta, arrastarlo dentro de un formulario, modificar su apariencia y su comportamiento, definir su interacción con otros Beans, y componer un applet, una aplicación, o un nuevo Bean, junto con otros Beans. Todo esto se puede hacer sin escribir una línea de código.

La siguiente lista describe brevemente los conceptos clave de los Beans:

- Las herramientas de desarrollo descubren las características de un Bean (esto es, sus propiedades, sus métodos y sus eventos) mediante un proceso conocido como introspección. Los Beans soportan la introspección de dos formas:

  - Adheriendose a las convenciones específicas de nombres conocidas como patrones de nombrado, cuando se nombran las caracterísitcas del Bean. La clase java.beans.Introspector examina el Bean buscando esos patrones de diseño para descubrir las caracterísiticas del Bean. La clase Introspector se encuentra en el API core reflection.

  - Proporcionando explícitamente información sobre la propiedad, el método o el evento con una clase Bean Information relacionada. Esta clase implementa el interface BeanInfo. Una clase BeanInfo lista explícitamente aquellas caracterísitcas del Bean que están expuestas a la herramienta de desarrollo.

  Puedes ver el capítulo 8 de Especificaciones del API JavaBeans para una explicación sobre la introspección, los patrones de diseño y BeanInfo.

- Propiedades Son las caracterísitcas de apariencia y comportamiento de un Bean que pueden ser modificadas durante el diseño. Las propiedades se exponen a las herramientas de desarrollo mediante los patrones de diseño o una clase BeanInfo. Puedes ver el capítulo 7 de la Especificación del API JavaBeans para una completa explicación.

- Los Beans exponen sus propiedades para poder ser personalizados durante el diseño. La personalización se soporta de dos formas: utilizando editores de propiedades, o utilizando personalizadores de Beans más sofisticados. Puedes ver el capítulo 9 de la Especificación del API JavaBeans para una explicación completa.

- Los Beans utilizan los eventos para comunicarse con otros Beans. Un Bean que quiere recibir eventos (un Bean oyente) registra su interés con un Bean que lanza eventos (un Bean fuente). Las herramientas de desarrollo pueden examinar un Bean para determinar que eventos puede disparar (enviar) y cuales puede manejar (recibir). Puedes ver el Capítulo 6 de la Especificación del API JavaBeans para una explicación completa.

- La Persistencia permite a los Beans guardar su estado, y restaurarlo posteriormente. Una vez que se han cambiado las propiedades de Bean, se puede guardar su estado y restaurar el Bean posteriormente. Los JavaBeans utilizan la Serialización de Objetos Java para soportar la Persistencia. Puedes ver el capítulo 5 de la Especificación del API JavaBeans para una explicación completa.

- Los métodos de un Bean no son diferentes de los métodos Java, y pueden ser llamados desde otros Beans o desde un entorno de scripts. Por defecto, todos los métodos públicos son exportados.

Aunque los Beans han sido diseñados para ser entendidos por herramientas de desarrollo, todas las claves del API, incluyendo el soporte para eventos, las propiedades y la persistencia, han sido diseñadas para ser fácilmente entendibles por los programadores humanos.

Ozito