10.2.4. Beans gérés

10.2.4.1. Les beans gérés

Avant Java EE 6, il y n'avait aucun définition précise du terme bean dans la plate-forme Java EE. Il y avait plusieurs concepts que l'on nommait « bean » dans les spécifications de Java EE, comme les EJB beans et les JSF managed beans. Les frameworks de tierce partie comme Spring et Seam ont commencé à nous donner leur avis sur ce que l'on entend par bean.
Java EE 6 a établi une définition commune dans la spécification de Managed Beans. Les Managed Beans sont définis comme des objets gérés par conteneur avec des restrictions minimales de programmation, connus aussi sous le sigle POJO (Plain Old Java Object). Ils supportent un petit ensemble de services de base, tels que l'injection de ressources, les rappels de cycle de vie et les intercepteurs. Les spécifications de leurs accompagnateurs, comme les EJB et CDI, s'appuient sur ce modèle de base.
À part quelques exceptions, chaque classe concrète de Java qui a un constructeur sans paramètre (ou un constructeur désigné avec l'annotation @Inject) est un bean. Cela inclut chaque JavaBean et chaque bean de session EJB. La seule exigence pour activer les services mentionnés dans les beans est qu'ils résident dans une archive (un JAR ou un module Java EE comme un WAR ou JAR EJB) qui contienne un fichier spécial marqueur : META-INF/beans.xml.