openclassroom - javabeans cours




Qu'est-ce qu'un JavaBean exactement? (10)

J'ai compris, je pense, qu'un "Bean" est une classe Java avec des propriétés et des getters / setters. Autant que je comprends, c'est l'équivalent d'un C struct. Est-ce vrai?

De plus, existe-t-il une réelle différence syntaxique entre un haricot et une classe régulière? Y a-t-il une définition spéciale ou une interface?

Fondamentalement, pourquoi y a-t-il un terme pour cela?

Edit : Si vous pouvez être si gentil et ajouter des informations concernant l'interface Serializable , et ce que cela signifie, à votre réponse, je serais très reconnaissant.


En ce qui concerne la deuxième partie de votre question, la sérialisation est un mécanisme de persistance utilisé pour stocker des objets en tant que séquence d'octets signés. Mis moins formellement, il stocke l'état d'un objet pour que vous puissiez le récupérer plus tard, par désérialisation.


Explication avec un exemple.

1. import java.io.Serializable

En ce qui concerne la sérialisation, voir la Serializable .

2. champs privés

Les champs doivent être privés pour empêcher les classes externes de modifier facilement ces champs. Au lieu d'accéder directement à ces champs, des méthodes getter / setter usuelles sont utilisées.

3. Constructeur

Un constructeur public sans argument.

4. getter / setter

Méthodes getter et setter pour l'accès aux champs privés.

/** 1. import java.io.Serializable */
public class User implements java.io.Serializable {
    /** 2. private fields */
    private int id;
    private String name;

    /** 3. Constructor */
    public User() {
    }
    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }

    /** 4. getter/setter */
    // getter
    public int getId() {
        return id;
    }
    public String getName() {
        return name;
    }
    // setter
    public void setId(int id) {
        this.id = is;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Ils sont sérialisables, ont un constructeur à zéro argument, et permettent l'accès aux propriétés en utilisant les méthodes getter et setter. Le nom "Bean" a été donné pour englober cette norme, qui vise à créer des composants logiciels réutilisables pour Java. according to wiki

Les objets qui forment le backbone de votre application et qui sont gérés par le conteneur Spring IoC sont appelés beans. Un bean est un objet qui est instancié, assemblé et géré par un conteneur Spring IoC. Sinon, un bean est simplement l'un des nombreux objets de votre application. according to printemps io .


Java Beans est une norme, et ses exigences syntaxiques de base ont été clairement expliquées par les autres réponses.

Cependant, IMO, c'est plus qu'une simple norme de syntaxe. La signification réelle ou l'utilisation prévue de Java Beans est, avec divers outils autour de la norme, pour faciliter la réutilisation de code et l'ingénierie logicielle basée sur les composants, permettant aux développeurs de construire des applications en assemblant des composants existants sans avoir à écrire. code (ou seulement écrire un petit code de colle). Malheureusement, cette technologie est largement sous-estimée et sous-utilisée par l'industrie, ce qui peut être dit à partir des réponses à ce sujet.

Si vous lisez le tutoriel d'Oracle sur les Java Beans , vous pouvez mieux comprendre cela.


Les JavaBeans sont des classes Java qui adhèrent à une convention de codage extrêmement simple. Tout ce que vous avez à faire est de

  1. Implémenter l'interface java.io.Serializable - Pour enregistrer l'état d'un objet
  2. utiliser un constructeur d'argument public vide - Pour instancier l'objet
  3. Et fournir des méthodes getter et setter publiques - Pour obtenir et définir les valeurs des variables privées (propriétés).

Pour comprendre JavaBean, vous devez remarquer ce qui suit: JavaBean est une substance conceptuelle et ne peut pas représenter une classe de choses spécifiques

JavaBean est un outil de développement qui peut être visualisé dans le fonctionnement de composants logiciels réutilisables

JavaBean est basé sur la spécification Sun JavaBeans et peut être des composants réutilisables. Sa plus grande caractéristique est la réutilisabilité.


Selon la Wikipédia:

  1. La classe doit avoir un constructeur public par défaut (sans arguments). Ceci permet une instanciation facile dans les cadres d'édition et d'activation.

  2. Les propriétés de classe doivent être accessibles en utilisant get, set, is (peut être utilisé pour les propriétés booléennes au lieu de get), et d'autres méthodes (méthodes dites accessor et mutator) selon une convention de dénomination standard. Cela permet une inspection et une mise à jour automatiques 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 peuvent avoir un ou plusieurs arguments.

  3. La classe devrait être sérialisable. [Ceci permet aux applications et aux frameworks d'enregistrer, stocker et restaurer de manière fiable l'état du bean indépendamment de la machine virtuelle et de la plate-forme.]

Pour plus d'informations, suivez ce link.


Un Java Bean est une classe Java [conceptuelle] qui devrait suivre les conventions suivantes:

  1. Il devrait avoir un constructeur sans-arg.
  2. Il devrait être sérialisable.
  3. Il devrait fournir des méthodes pour définir et obtenir les valeurs des propriétés, appelées méthodes getter et setter.

C'est un composant logiciel réutilisable. Il peut encapsuler plusieurs objets en un seul objet de sorte que le même objet peut être consulté à partir de multiples endroits et est une étape vers la maintenance facile du code.


Vous trouverez la sérialisation utile lors du déploiement de votre projet sur plusieurs serveurs puisque les beans seront conservés et transférés entre eux.


Les Java Beans sont juste des classes Java ordinaires qui suivent certaines conventions - vous n'avez pas besoin d'outils spéciaux pour les créer.

Deux conventions principales doivent être suivies lors de la création de classes Java Bean:

  • Chaque " propriété " de la classe Java Bean est implémentée en définissant deux fonctions publiques (une fonction "get" et une fonction "set")
  • Les " opérations " de la classe Java Bean sont les autres fonctions publiques définies dans la classe.






serializable