Managed Beans
Die Managed-Beans-Spezifikation (JSR 316) wird verwendet, um Managed Beans für die Java™ Platform Enterprise Edition (EE) zu definieren, und ist Bestandteil der Plattform Java EE 6.
Managed Beans sind containergesteuerte Objekte mit sehr wenigen unterstützten Services (z. B. Ressourceninjektion,
Lebenszyklus-Callback-Methoden, Interceptor) und haben folgende Merkmale:
- Eine Managed Bean hat keinen eigenen java:comp-Namespace auf Komponentenebene. Daher können ihre Ressourcen nur in "java:app" und "java:module" definiert werden.
- Managed-Bean-Methoden werden im selben Thread aufgerufen wie der aufrufende Thread. Beispielsweise startet die Methode nicht ihren eigenen Thread.
- Managed-Bean-Methoden werden im selben Kontext aufgerufen wie der aufrufende Thread.
- Managed Beans werden mit der Annotation "javax.annotation.ManagedBean" definiert.
- Eine Managed Bean kann benannt werden. Voraussetzung für die Einbindung in "java:module" und "java:app" ist allerdings, dass sie einen Namen hat. Beispiel:
@ManagedBean(“myCart“) public class Cart { ... }
- Eine Referenz auf eine Managed Bean kann über die Ressourceninjektion oder über einen Lookup in "java:module" oder "java:app" abgerufen werden, wenn ein Name angegeben ist.
- Managed Beans unterstützen Callbacks zum Lebenszyklus mit den Annotationen "javax.annotation.PostConstruct" und "javax.annotation.PreDestroy".
Sie können die Bindungsinformationen, mit denen Ressourcen JNDI-Namen zugeordnet werden,
mithilfe der Datei "ibm-managed-bean-bnd.xml" angeben. Im folgenden Beispiel wird die Verwendung der Datei "ibm-managed-bean-bnd.xml" gezeigt.
<?xml version="1.0" encoding="UTF-8"?>
<managed-bean-bnd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-managed-bean-bnd_1_0.xsd"
version="1.0"
>
<managed-bean class="com.ibm.example.MyManagedBean">
<resource-ref name="myDS" binding-name="jdbc/ds1"/>
<resource-ref name="com.ibm.example.MyManagdBean/field" binding-name="jdbc/ds2"/>
<message-destination-ref name="myQueue" binding-name="jms/mqQueue"/>
<ejb-ref name="myEJB" binding-name="java:app/MyEJBModule/MyStatelessBean"/>
</managed-bean>
<interceptor class="com.ibm.example.MyManagedBeanInterceptor">
<resource-ref name="interceptorDS" binding-name="jdbc/db2ds"/>
</interceptor>
</managed-bean-bnd>
Wie vom MBean-Bindungsschema (Managed Bean) definiert, hat die Datei "ibm-managed-bean-bnd.xml" eine Teilmenge allgemeiner Elementdefinitionen, die auch von EJB-Bindungen genutzt werden.
Eine Liste der EJB-Bindungselemente und deren Beschreibungen finden Sie auf der Übersichtsseite zu Anwendungsbindungen der EJB Versionen 3.0 und 3.1.