Je ne suis pas sûr de la différence. J'utilise Hibernate et, dans certains livres, ils utilisent JavaBean et POJO comme terme interchangeable. Je veux savoir s'il y a une différence, pas seulement dans le contexte d'Hibernate, mais en tant que concepts généraux.
la source
Tous les JavaBeans sont des POJO mais tous les POJO ne sont pas des JavaBeans.
Un JavaBean est un objet Java qui satisfait certaines conventions de programmation:
la source
Serializable
.Selon Martin Fowler, un POJO est un objet qui encapsule la logique métier tandis qu'un bean (à l'exception de la définition déjà indiquée dans d'autres réponses) n'est guère plus qu'un conteneur pour conserver des données et les opérations disponibles sur l'objet se contentent de définir et d'obtenir des données.
la source
POJO: Si la classe peut être exécutée avec le JDK sous-jacent, sans aucune autre bibliothèque tierce externe, alors elle s'appelle POJO
JavaBean: si la classe ne contient que des attributs avec des accesseurs (setters et getters), ceux-ci sont appelés javabeans.Les beans Java ne contiennent généralement pas de logique commerciale plutôt que ceux utilisés pour contenir certaines données.
Tous les Javabéens sont des POJO mais tous les POJO ne sont pas des Javabéens
la source
Pojo - Objet java ancien uni
La classe pojo est une classe ordinaire sans aucune spécialité, la classe est totalement reliée à la technologie / au cadre. La classe n'implémente pas la technologie / le cadre et ne s'étend pas de la technologie / du cadre api cette classe est appelée classe pojo.
La classe pojo peut implémenter des interfaces et étendre des classes mais la super classe ou l'interface ne doit pas être une technologie / un framework.
Exemples :
1.
La classe ABC ne met pas en œuvre ou ne s'étend pas à partir de la technologie / du cadre, c'est pourquoi il s'agit de la classe pojo.
2.
Classe ABC s'étendant de l'API de la technologie des servlets, c'est pourquoi ce n'est pas une classe pojo.
3.
La classe ABC implémente depuis rmi api c'est pourquoi ce n'est pas une classe pojo.
4.
cette interface fait partie du langage java ne fait pas partie de la technologie / framework.so c'est la classe pojo.
5.
ici, le thread est également une classe de langage java, il s'agit donc également d'une classe pojo.
6.
si la classe Test s'étend ou implémente à partir de technologies / framework, ABC n'est pas non plus une classe pojo car elle hérite des propriétés de la classe Test. si la classe Test n'est pas une classe pojo, alors la classe ABC n'est pas non plus une classe pojo.
7.
maintenant ce point est un cas exceptionnel
@Entity
est une annotation donnée par hibernate api ou jpa api mais nous pouvons toujours appeler cette classe comme classe pojo. La classe avec des annotations provenant de la technologie / du framework est appelée classe pojo par ce cas exceptionnel.la source
Spécialités énumérées ci-dessous avec raison
la source
POJOS
avec certaines conventions (getter / setter, constructeur public sans argument, variables privées) et sont en action (par exemple être utilisé pour lire des données par formulaire)JAVABEANS
.la source
En résumé, les similitudes et les différences sont:
Tous les haricots JAVA sont des POJO mais tous les POJO ne sont pas des haricots JAVA.
la source
Vous avez vu les définitions formelles ci-dessus, pour tout ce qu'elles valent.
Mais ne vous attardez pas trop sur les définitions. Regardons simplement le sens des choses ici.
Les JavaBeans sont utilisés dans les applications Java d'entreprise, où les utilisateurs accèdent fréquemment à distance aux données et / ou au code d'application, c'est-à-dire à partir d'un serveur (via le Web ou un réseau privé) via un réseau. Les données impliquées doivent donc être diffusées au format série dans ou hors des ordinateurs des utilisateurs - d'où le besoin d'objets Java EE pour implémenter l'interface Sérialisable. La majeure partie de la nature d'un JavaBean n'est pas différente des objets d'application Java SE dont les données sont lues dans ou écrites dans un système de fichiers. L'utilisation fiable des classes Java sur un réseau à partir d'une gamme de combinaisons utilisateur machine / système d'exploitation nécessite également l'adoption de conventions pour leur gestion. D'où la nécessité d'implémenter ces classes en public, avec des attributs privés, un constructeur sans argument et des getters et setters standardisés.
Les applications Java EE utiliseront également des classes autres que celles qui ont été implémentées en tant que JavaBeans. Ceux-ci peuvent être utilisés pour traiter les données d'entrée ou organiser les données de sortie, mais ne seront pas utilisés pour les objets transférés sur un réseau. Par conséquent, les considérations ci-dessus ne doivent pas être appliquées à la barre qui est valide en tant qu'objets Java. Ces dernières classes sont appelées POJO - Plain Old Java Objects.
Dans l'ensemble, vous pouvez voir les Java Beans comme de simples objets Java adaptés à une utilisation sur un réseau.
Il y a énormément de battage médiatique - et pas une petite quantité de conneries - dans le monde du logiciel depuis 1995.
la source