Che cos'è un fagiolo Java? [duplicato]


Possibile duplicato:
Qual è il punto di fagioli?

Che cos'è un javabean? Per che cosa si usa? E quali sono alcuni esempi di codice? Ho sentito che è usato per qualcosa a che fare con i metodi getter e setter? Sono abbastanza confuso su cosa sia un bean java e dove ci si accede. L'ho cercato su Google ma non sono riuscito a trovare una risposta definitiva.

Author: codeforester, 2012-07-10

4 answers

Java Bean è una normale classe Java che ha proprietà private con il suo metodo getter e setter pubblico.

I bean Java sono generalmente usati come classe helper.

Esempio -

public class User implements java.io.Serializable {

    private String name;
    private Integer age;

    public String getName(){
        return this.name;
    }

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

    public Integer getAge(){
        return this.age;
    }

    public void setAge(Integer age){
        this.age = age;
    }
}

L'implementazione di Serializable non è obbligatoria ma è molto utile se si desidera mantenere o trasferire Javabeans al di fuori della memoria di Java, ad esempio in hard disk o in rete.

Luoghi in cui vengono utilizzati JavaBeans?

 45
Author: Pramod Kumar, 2017-05-23 12:02:23

I JavaBeans sono componenti software riutilizzabili per Java. In pratica, sono classi scritte nel linguaggio di programmazione Java conformi a una particolare convenzione. Vengono utilizzati per incapsulare molti oggetti in un singolo oggetto (il bean), in modo che possano essere passati come un singolo oggetto bean anziché come più singoli oggetti. Un JavaBean è un oggetto Java serializzabile, ha un costruttore a 0 argomenti e consente l'accesso alle proprietà utilizzando getter e setter metodo.

Vantaggi

  • Un Bean ottiene tutti i vantaggi del paradigma "scrivi una volta, esegui ovunque" di Java.
  • È possibile controllare le proprietà, gli eventi e i metodi di un bean esposti a un'altra applicazione.
  • Software ausiliario può essere fornito per aiutare a configurare un Bean.
  • Le impostazioni di configurazione di un Bean possono essere salvate in una memoria persistente e ripristinate in un secondo momento.
  • Un Bean può registrarsi per ricevere eventi da altri oggetti e può generare eventi che vengono inviati ad esso.

Svantaggi

  • Una classe con un costruttore nullary è soggetta a un'istanza in uno stato non valido. Se tale classe viene istanziata manualmente da uno sviluppatore (piuttosto che automaticamente da un qualche tipo di framework), lo sviluppatore potrebbe non rendersi conto di aver istanziato la classe in uno stato non valido. Il compilatore non può rilevare un tale problema e, anche se è documentato, non vi è alcuna garanzia che il lo sviluppatore vedrà la documentazione.
  • Dover creare un getter per ogni proprietà e un setter per molti, la maggior parte o tutti, crea un'immensa quantità di codice boilerplate.

Esempio:

package beans;

/**
 * Class <code>PersonBean</code>.
 */
public class PersonBean implements java.io.Serializable {

    private String name;

    private boolean deceased;

    /** No-arg constructor (takes no arguments). */
    public PersonBean() {
    }

    /**
     * Property <code>name</code> (note capitalization) readable/writable.
     */
    public String getName() {
        return this.name;
    }

    /**
     * Setter for property <code>name</code>.
     * @param name
     */
    public void setName(final String name) {
        this.name = name;
    }

    /**
     * Getter for property "deceased"
     * Different syntax for a boolean field (is vs. get)
     */
    public boolean isDeceased() {
        return this.deceased;
    }

    /**
     * Setter for property <code>deceased</code>.
     * @param deceased
     */
    public void setDeceased(final boolean deceased) {
        this.deceased = deceased;
    }
}

Riferimento http://en.wikipedia.org/wiki/JavaBeans

 15
Author: Hemant Metalia, 2012-07-10 05:32:38

Bene, l'API JavaBean definisce una serie di convenzioni relative a JavaBeans. Secondo Wikipedia:

Le convenzioni richieste sono le seguenti:

  • La classe deve avere un costruttore predefinito pubblico (no-argument). Ciò consente una facile istanziazione all'interno di framework di modifica e attivazione.
  • Le proprietà della classe devono essere accessibili usando get, set, is (usato per le proprietà booleane invece di get) e altri metodi (i cosiddetti metodi di accesso e metodi mutatori), seguendo una denominazione standard convenzione. Ciò consente una facile ispezione automatizzata e l'aggiornamento di bean stato all'interno di framework, molti dei quali includono editor personalizzati per vari tipi di proprietà. I setter devono ricevere un solo argomento.
  • La classe dovrebbe essere serializzabile. Consente alle applicazioni e ai framework di salvare, archiviare e ripristinare in modo affidabile lo stato del bean in un moda indipendente dalla VM e dalla piattaforma.

Abbastanza spesso, questi sono i tipi più comuni di classi che possono essere trovati in un'applicazione, in quanto possono essere utilizzati per modellare i dati utilizzati. Un esempio di tale fagiolo può essere visto di seguito:

public class Person implements Serializable
{
  private String name;
  private boolean alive;

  public Person()
  {
    // constructor logic...
  }

  public String getName()
  {
    return name;
  }

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

  public boolean isAlive()
  {
    return alive;
  }

  public void setAlive(boolean alive)
  {
    this.alive = alive;
  }
}

Come puoi vedere, le proprietà si riflettono nei getter e nei setter.

HTH

 7
Author: Crollster, 2012-07-10 05:23:16

Se stai parlando di java-bean e NON EJB Bean, ecco la spiegazione...

1. Un JavaBean ha un costruttore che non accetta argomenti.

2. Un JavaBean ha un insieme di proprietà.

3. Un JavaBean ha metodi accessor (getXxx o isXxx per le proprietà booleane) e metodi mutator (setXxx) che consentono l'accesso alle proprietà sottostanti.

Il 3 ° punto indica una classe java con variabili di istanza private e pubblico getter, setter.

Ad esempio:

import java.util.Date;

public class User {
    private Date loginDate;
    private String name;
    private String password;

    public User() { }

    public Date getLoginDate() {
        return loginDate;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

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

    public void setPassword(String password) {
        this.password = password;
    }

    public void delete() {
        // code to delete user from database
    }

    public void update() {
        // code to update user in database
    }

    public static User getUser(String name) {
        // code returning a new User object
        // populated from the database
    }
}
 1
Author: Kumar Vivek Mitra, 2012-07-10 05:18:29