Comprendre les différences entre les annotations des beans Java EE 6
Dans Java EE 6, plusieurs ensembles d'annotations sont disponibles pour créer des beans gérés, injecter dépendances et gestion de leur cycle de vie :
-
Annotations EJB : @Stateful, @Stateless
- Utilisé pour créer des Enterprise JavaBeans (EJB) , qui fournissent des modèles de composants distribués et une gestion des transactions.
-
javax.annotation.ManagedBean :
- Une annotation plus ancienne utilisée pour créer des beans gérés.
- Obsolète au profit des beans et des EJB gérés par CDI.
-
javax.faces.ManagedBean, @SessionScoped, @RequestScoped :
- Annotations spécifiques aux beans gérés JavaServer Faces (JSF).
- Utilisé pour définir des beans avec différentes portées dans les applications JSF.
-
javax.enterprise.context.SessionScoped, @RequestScoped :
- Annotations utilisées par les beans gérés par injection de contexte et de dépendances (CDI).
- Définir la portée des beans CDI au sein d'une application.
-
javax.inject.Named, @Inject :
- Annotations utilisées par les beans CDI.
- @Named identifie un bean à injecter, tandis que @Inject spécifie la dépendance à injecter.
Relations et Utilisation
Les beans gérés CDI sont le principal cadre d'injection de dépendances et de gestion des beans dans Java EE 6. Les beans CDI s'intègrent aux EJB, permettant aux EJB d'être injectés dans les beans CDI et vice versa.
Les beans gérés JSF sont spécifiques aux applications JSF. Ils peuvent être utilisés dans les pages JSF, mais leur portée et leurs fonctionnalités sont limitées par rapport aux beans CDI.
Injection de dépendances
- @EJB : utilisé pour injecter des EJB dans des EJB ou des beans CDI.
- @Inject : utilisé pour injecter des beans CDI dans d'autres beans CDI ou dans des EJB.
- @ManagedProperty : une annotation plus ancienne utilisée pour injecter des beans dans des EJB ou des beans gérés par JSF. . Il est obsolète au profit de @Inject.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn