Articulo de referencia

JavaBeans

En la informática basada en la plataforma Java , JavaBeans es una tecnología desarrollada por Sun Microsystems y lanzada en 1996, como parte de JDK 1.1. Los 'beans' de JavaBeans...

En la informática basada en la plataforma Java , JavaBeans es una tecnología desarrollada por Sun Microsystems y lanzada en 1996, como parte de JDK 1.1.

Los 'beans' de JavaBeans son clases que encapsulan uno o más objetos en un único objeto estandarizado (el bean). Esta estandarización permite que los beans se gestionen de una manera más genérica, lo que permite una reutilización y una introspección del código más sencillas . Esto, a su vez, permite que los beans se traten como componentes de software y que los editores e IDE los manipulen visualmente sin necesidad de ninguna configuración inicial ni de conocer ningún detalle de implementación interna.

Como parte de la estandarización, todos los beans deben ser serializables , tener un constructor sin argumentos y permitir el acceso a las propiedades mediante métodos getter y setter .

Características

Introspección
La introspección es un proceso de análisis de un bean para determinar sus capacidades. Se trata de una característica esencial de la especificación de Java Beans, ya que permite que otra aplicación, como una herramienta de diseño, obtenga información sobre un componente.
Propiedades
Una propiedad es un subconjunto del estado de un Bean. Los valores asignados a las propiedades determinan el comportamiento y la apariencia de ese componente. Se establecen mediante un método setter y se pueden obtener mediante un método getter.
Personalización
Un personalizador puede proporcionar una guía paso a paso que el proceso debe seguir para utilizar el componente en un contexto específico.
Eventos
Los beans pueden interactuar con el modelo EventListener de EventObject. [ aclaración necesaria ]
Persistencia
La persistencia es la capacidad de guardar el estado actual de un Bean, incluidos los valores de las propiedades y las variables de instancia de un Bean, en un almacenamiento no volátil y recuperarlos en un momento posterior.
Métodos
Un bean debe utilizar métodos de acceso para encapsular las propiedades. Un bean puede proporcionar otros métodos para la lógica empresarial que no estén relacionados con el acceso a las propiedades.

Ventajas

  • Las propiedades, eventos y métodos de un bean pueden exponerse a otra aplicación.
  • Un bean puede registrarse para recibir eventos de otros objetos y puede generar eventos que se envían a esos otros objetos. [ cita requerida ]
  • Se puede proporcionar software auxiliar para ayudar a configurar un bean. [ cita requerida ]
  • Los parámetros de configuración de un bean se pueden guardar en un almacenamiento persistente y restaurar. [ cita requerida ]

Desventajas

  • Una clase con un constructor sin argumentos está sujeta a ser instanciada en un estado no válido. [1] Si un desarrollador instancia dicha clase manualmente (en lugar de hacerlo automáticamente mediante algún tipo de marco de trabajo), el desarrollador podría no darse cuenta de que la clase se ha instanciado incorrectamente. El compilador no puede detectar un problema de este tipo, e incluso si está documentado, no hay garantía de que el desarrollador vea la documentación.
  • Los JavaBeans son inherentemente mutables y, por lo tanto, carecen de las ventajas que ofrecen los objetos inmutables . [1]
  • Tener que crear métodos getter para cada propiedad y métodos setter para muchas, la mayoría o todas ellas puede generar una inmensa cantidad de código repetitivo .

API de JavaBeans

La funcionalidad de JavaBeans es proporcionada por un conjunto de clases e interfaces en el java.beanspaquete.

Convenciones de JavaBean

Para funcionar como una clase JavaBean , una clase de objeto debe obedecer ciertas convenciones sobre nombres de métodos, construcción y comportamiento. Estas convenciones permiten tener herramientas que pueden usar, reutilizar, reemplazar y conectar Java Beans.

Las convenciones requeridas son las siguientes:

  • La clase debe tener un constructor público predeterminado (sin argumentos). Esto permite una fácil creación de instancias dentro de los marcos de edición y activación.
  • Las propiedades de clase deben ser accesibles mediante get , set , is (se puede utilizar para propiedades booleanas en lugar de get), to y otros métodos (los llamados métodos de acceso y métodos de mutación ) de acuerdo con una convención de nombres estándar . Esto permite una fácil inspección y actualización automatizada del estado del bean dentro de los marcos, muchos de los cuales incluyen editores personalizados para varios tipos de propiedades. Los setters pueden tener uno o más argumentos.
  • La clase debe ser serializable . (Esto permite que las aplicaciones y los marcos guarden, almacenen y restauren de manera confiable el estado del bean de una manera independiente de la máquina virtual y de la plataforma).

Ejemplo de código

paquete reproductor ; 

La clase pública PersonBean implementa java . io . Serializable {     

    /** Propiedades **/ 
private boolean fallecido = falso ;        

    Lista privada lista ;  

    /** Propiedad "nombre", legible/escribible. */ 
private String name = null ;        

    /** Constructor sin argumentos (no acepta argumentos). */ 
public PersonBean () { }      
    

    public List getList ( ) { return lista ; } public void setList ( final List lista ) { this.list = lista ; }   
         
    
	
         
          
    

    /** 
     * Getter para la propiedad "nombre". 
     */ 
public String getName () { return name ; }       
         
    

    /** 
     * Establecedor para la propiedad "nombre". 
     * 
     * @param valor 
     */ 
public void setName ( final String valor ) { this . nombre = valor ; }         
          
    

    /** 
     * Getter para la propiedad "fallecido" 
     * Sintaxis diferente para un campo booleano (is vs get) 
     */ 
public boolean isDeceased () { return died ; }       
         
    

    /** 
     * Establecedor de la propiedad "fallecido". 
     * @param value 
     */ 
public void setDeceased ( boolean value ) { fallecido = value ; } }        
          
    

TestPersonBean.java:

importar jugador.PersonBean ; 

/** 
* Clase "TestPersonBean". 
*/ 
public class TestPersonBean { /**      * Método de prueba "main" para la clase "PersonBean".      *      * @param arguments      */ public static void main ( final String [] arguments ) { final PersonBean person = new PersonBean ();   
    




          
             

        persona.setName ( "Bob " ) ; persona.setDeceased ( false ) ; persona.setList ( new ArrayList ( ) ) ;
        
         

        // Salida: "Bob [vivo]" 
System . print ( persona . getName ( ) ); System . println ( persona . isDeceased ( ) ? " [fallecido]" : " [ vivo]" ); } }        
            
    

<jsp:useBean id= "persona" clase= "jugador.PersonBean" ámbito= "página" /> <jsp:setProperty nombre= "persona" propiedad= "*" />   
  

<html> 
<body> Nombre: <jsp:getProperty name= "person" property= "name" /><br/> ¿ Fallecido? <jsp:getProperty name= "person" property= "deceased" /><br/> <br/> <form name= "beanTest" method= "POST" action= "testPersonBean.jsp" > Ingrese un nombre: <input type= "text" name= "name" size= "50" ><br/> Elija una opción:
 <select name= "deceased" > <option value= "false" > Vivo </option> <option value= "true" > Muerto </option> </select> <input type= "submit" value= "Prueba el Bean" > </form> </body> </html>    
           
           
        
           
                  
                           
                 
                 
            
              
        
    

Véase también

Referencias

  1. ^ ab Bloch, Joshua (2008). Effective Java (Segunda edición). Addison-Wesley. pág. 13. ISBN 978-0-321-35668-0.
  • Tutoriales de JavaBeans de Oracle
  • Especificación de JavaBeans
Retrieved from "https://en.wikipedia.org/w/index.php?title=JavaBeans&oldid=1166618058"