Duplicata possible:
Quel est l'intérêt des haricots?
Qu'est-ce qu'un javabean? A quoi cela sert? Et quels sont quelques exemples de code? J'ai entendu dire qu'il est utilisé pour quelque chose à voir avec les méthodes getter et setter? Je suis assez confus sur ce qu'est un bean Java et où vous y accédez même. Je l'ai cherché sur Google mais je n'ai pas pu trouver de réponse définitive.
Java Bean est une classe normale Java qui possède des propriétés privées avec sa méthode getter et setter publique.
Les Java Beans sont généralement utilisés comme classe d'assistance.
Exemple -
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'implémentation de Serializable
n'est pas obligatoire mais est très utile si vous souhaitez conserver ou transférer des Javabeans en dehors de la mémoire de Java, par ex. sur le disque dur ou sur le réseau.
Les JavaBeans sont des composants logiciels réutilisables pour Java. En pratique, ce sont des classes écrites dans le Java conforme à une convention particulière. Elles sont utilisées pour encapsuler de nombreux objets en un seul objet (le bean), afin qu'ils puissent être transmis comme un seul objet bean au lieu de plusieurs objets individuels. Un JavaBean est un Java objet sérialisable, possède un constructeur à 0 argument et permet d'accéder aux propriétés à l'aide des méthodes getter et setter.
Les avantages
Désavantages
Exemple :
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;
}
}
se référer http://en.wikipedia.org/wiki/JavaBeans
Eh bien, l'API JavaBean définit un certain nombre de conventions concernant JavaBeans. Selon Wikipedia:
Les conventions requises sont les suivantes:
- La classe doit avoir un constructeur par défaut public (sans argument). Cela permet une instanciation facile dans les cadres d'édition et d'activation.
- Les propriétés de classe doivent être accessibles à l'aide de get, set, is (utilisé pour les propriétés booléennes au lieu de get) et d'autres méthodes (méthodes appelées accesseurs et méthodes de mutation), suivant une convention de dénomination standard. Cela permet une inspection et une mise à jour automatisées faciles de l'état du bean dans les frameworks, dont beaucoup incluent des éditeurs personnalisés pour différents types de propriétés. Les setters ne doivent recevoir qu'un seul argument.
- La classe doit être sérialisable. Il permet aux applications et aux frameworks de sauvegarder, stocker et restaurer de manière fiable l'état du bean d'une manière indépendante de la VM et de la plateforme).
Très souvent, ce sont les types de classes les plus courants que l'on peut trouver dans une application, car ils peuvent être utilisés pour modéliser les données utilisées. Un exemple d'un tel bean peut être vu ci-dessous:
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;
}
}
Comme vous pouvez le voir, les propriétés se reflètent dans les getters et setters.
HTH
Si vous parlez Java-beans et PAS EJB Beans, alors voici l'explication ...
1. Un JavaBean a un constructeur qui ne prend aucun argument.
2. Un JavaBean a un ensemble de propriétés.
. Un JavaBean possède des méthodes d'accesseur (getXxx ou isXxx pour les propriétés booléennes) et des méthodes de mutation (setXxx) qui permettent d'accéder à ses propriétés sous-jacentes.
Le 3ème point indique une classe Java classe avec des variables d'instance privées et getter public, setter.
par exemple:
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
}
}