EJB 3.1-Annotationen und deren Implementierungsdeskriptorentsprechungen

Die folgende Tabelle veranschaulicht die Umsetzung von EJB 3.1-Annotationen und XML-Daten im Implementierungsdeskriptor.

Tabelle 1. Annotationen und deren Implementierungsdeskriptorentsprechungen
Annotation Attribute Beschreibung Entsprechendes Implementierungsdeskriptorelement
EJB-Annotationen (JSR-220)      
@Stateless
java.lang.String     description

 java.lang.String     mappedName

 java.lang.String     name 
Komponentendefinierende Annotation für eine Stateless Session-Bean. Die Methode isIdentical gibt immer "true" zurück, wenn Sie verwendet wird, um Objektreferenzen zweier Sitzungsobjekte derselben Stateless Session-Bean zu vergleichen (d. h., sie sind funktional austauschbar).
<session>--<ejb-name>
<session>--<mapped-name>
<session>--<ejb-class>
<session>--<session-type>

Wenn der mit Annotationen versehene Typ eine Schnittstelle implementiert:

<session>--<local>

<session>--<local-home>
@Stateful
java.lang.String     description

 java.lang.String     mappedName

 java.lang.String     name 
Komponentendefinierende Annotation für eine Stateful Session-Bean.
<session>--<ejb-name>
<session>--<mapped-name>
<session>--<ejb-class>
<session>--<session-type>
@Local
java.lang.Class[]     value
Bei Verwendung für die Bean-Klasse werden die lokalen Geschäftsschnittstellen für eine Session-Bean deklariert. Bei Verwendung für eine Schnittstelle wird diese Schnittstelle als lokale Geschäftsschnittstelle festgelegt. In diesem Fall wird value() nicht angegeben.
<session>--<local>
@LocalHome
java.lang.Class     value
Legt die lokale Home-Schnittstelle oder die angepasste lokale Home-Schnittstelle für eine Session-Bean fest.
<session>--<local home>
@Remote
java.lang.Class[]     value
Legt die fernen Geschäftsschnittstellen für eine Session-Bean fest. Bei Verwendung für eine Schnittstelle wird diese Schnittstelle als ferne Geschäftsschnittstelle festgelegt. In diesem Fall wird value() nicht angegeben.
<session>--<remote>
@RemoteHome
java.lang.Class     value
Legt die ferne Home-Schnittstelle oder die angepasste ferne Home-Schnittstelle für eine Session-Bean fest.
<session>--<remote home>
@Remove
boolean     retainIfException
Wird auf eine Geschäftsmethode einer Stateful-Session-Bean-Klasse angewendet. Gibt an, dass der Container nach der Beendigung der Methode die Stateful Session-Bean entfernen soll.
<remove-method>--<bean-method>

<remove-method>--<retain-if-exception>
@Init
java.lang.String     value  
(Der Name der entsprechenden Erstellungsmethode der angepassten Home-Schnittstelle/lokalen Home-Schnittstelle)
Gibt eine Methode einer Session-Bean an, die der Erstellungsmethode einer angepassten Home-Schnittstelle oder einer angepassten lokalen Home-Schnittstelle entspricht.
<init-method>--<create-method>

<init-method>--<bean-method> 
@Timeout Ohne Gibt eine Methode in einer Stateless-Session-Bean-Klasse oder einer Message-driven-Bean-Klasse an, die die Ablaufzeit des EJB-Zeitgebers für diese Bean empfangen soll.
<timeout-method>
@MessageDriven
ActivationConfigProperty[]     activationConfig

java.lang.String     description

java.lang.String     mappedName

java.lang.Class     messageListenerInterface

java.lang.String     name 
Komponentendefinierende Annotation für eine Message-driven Bean.
<message-driven>--<ejb-name>
<message-driven>--<mapped-name>
<message-driven>--<ejb-class>
<message-driven>--<messaging-type> <message-driven>--<activation-config-property>
@TransactionAttribute
TransactionAttributeType     value
Bei Anwendung auf Typebene wird das Standardtransaktionsattribut für alle Geschäftsmethoden der Session- oder Message-driven Bean angegeben. Bei Anwendung auf Methodenebene wird nur für diese Methode das Transaktionsattribut angegeben.
<container-transaction>
@TransactionManagement
TransactionManagementType  value
Gibt an, ob eine Session-Bean oder eine Message-driven Bean containergesteuerte Transaktionen oder Bean-gesteuerte Transaktionen hat.
<transaction-type>
@PostActivate Ohne Gibt eine Methode an, die einen Callback empfangen soll, nachdem eine Stateful Session-Bean aktiviert wurde.
<post-activate>
@PrePassive Ohne Gibt eine Methode an, die einen Callback empfangen soll, bevor eine Stateful Session-Bean in den passiven Modus versetzt wird.
<pre-activate>
@EJB
java.lang.Class     beanInterface
(Enthält einen der folgenden Schnittstellentypen der Ziel-EJB: [ Lokale Geschäftsschnittstelle, ferne Geschäftsschnittstelle, lokale Home-Schnittstelle, ferne Home-Schnittstelle ])
 java.lang.String     beanName

 java.lang.String     mappedName

 java.lang.String     name  
Gibt eine Abhängigkeit in der lokalen oder in der fernen Ansicht einer Enterprise Java™ Bean an.
<ejb-ref>--<ejb-ref-name>
<ejb-ref>--<home>     
<ejb-ref>--<remote>

<ejb-local-ref>--<ejb-ref-name>
<ejb-local-ref>--<local-home>     
<ejb-local-ref>--<local>
@EJBs   Legt mehrere @EJB-Annotationen auf Typenebene fest.  
@ApplicationException
EJB[]     value
Wird auf eine Ausnahme angewendet, um anzugeben, dass sie eine Anwendungsausnahme ist und direkt an den Client gemeldet werden muss (d. h. ohne Wrapping).
<application-exception>--<exception-class>

<application-exception>--<rollback>
@ActivationConfigProperty
java.lang.String     propertyName

 java.lang.String     propertyValue boolean     rollback
Stellt eine Konfigurationseigenschaft für die Aktivierung dar.
<activation-config-property>

           --<activation-config-property-name>

<activation-config-property>

           --<activation-config-property-value>
@AroundInvoke Ohne Gibt eine Methode für eine Klasse an, die im AroundInvoke-Teil eines EJB-Aufrufs aufgerufen werden soll.
<around-invoke>--<class>
<around-invoke>--<method-name>
@ExcludeClassInterceptors Ohne Wird verwendet, um Interceptors auf Klassenebene für eine Geschäftsmethode auszuschließen.
<exclude-class-interceptors>
@ExcludeDefaultInterceptors Ohne Wird verwendet, um Standardinterceptors für eine Bean oder für eine Geschäftsmethode auszuschließen.
<exclude-default-interceptors>
@Interceptors
java.lang.Class[]     value
Gibt eine geordnete Liste mit Interceptors für eine Klasse oder Methode an.
<interceptors>--<interceptor>
Gängige Annotationen (JSR 250)      
@Generated
java.lang.String[]     value   

 java.lang.String  comments

 java.lang.String     date 
Die Annotation @Generated wird verwendet, um Quellcode zu markieren, der generiert wurde. Außerdem kann sie dazu verwendet werden, in einer einzelnen Datei den vom Benutzer geschriebenen Code von generiertem Code zu unterscheiden. Wenn sie verwendet wird, muss das Wertelement den Namen des Codegenerators haben. Gemäß der empfohlenen Konvention sollte im Wertfeld der vollständig qualifizierte Name des Codegenerators verwendet werden. Beispiel: com.company.package.classname. Das Datumselement wird verwendet, um das Datum anzugeben, an dem die Quelle generiert wurde. Das Datumselement muss dem Standard ISO 8601 entsprechen. Das Datumselement kann beispielsweise den Wert "2011-07-04T12:08:56.235-0700" haben, der für die lokale Zeit "2011-07-04 12:08:56" in der U.S. Pacific Time Zone steht. Das Kommentarelement ist ein Platzhalter für alle Kommentare, die der Codegenerator in den generierten Code einschließen kann. Dies ist die einzige Annotation mit dem Wert SOURCE für die Aufbewahrungszeit (Retention). Alle übrigen Annotationen haben den Wert RUNTIME. Ohne
@PostConstruct Ohne Die Annotation @PostConstruct wird in einer Methode verwendet, die nach der Durchführung der Abhängigkeitsinjektion ausgeführt werden muss, um Initialisierungen durchzuführen.
<post-construct>--<lifecycle-callback-class>
<post-construct>--<lifecycle-callback-method>
@PreDestroy Ohne Die Annotation @PreDestroy wird in Methoden als Callbackbenachrichtigung verwendet, um anzuzeigen, dass die Instanz gerade vom Container entfernt wird.
<pre-destroy>--<lifecycle-callback-class>
<pre-destroy>--<lifecycle-callback-method>
@Resource
Resource.AuthenticationType     authenticationType
   
Dies ist der für diese Ressource zu verwendende Authentifizierungstyp.
java.lang.String  description

 java.lang.String mappedName

 java.lang.String     name
Dies ist der JNDI-Name der Ressource.
boolean     shareable
Gibt an, ob diese Ressource von dieser Komponente und von anderen Komponenten gemeinsam genutzt werden kann.
Class     type
Dies ist der Java-Typ der Ressource.
Die Annotation @Resource markiert eine Ressource, die für die Anwendung erforderlich ist. Diese Annotation kann auf eine Anwendungskomponentenklasse oder auf Felder oder Methoden der Komponentenklasse angewendet werden. Wenn die Annotation auf ein Feld oder auf eine Methode angewendet wird, injiziert der Container bei der Initialisierung der Komponente eine Instanz der angeforderten Ressource in die Anwendungskomponente. Wenn die Annotation auf die Komponentenklasse angewendet wird, deklariert die Annotation eine Ressource, die zur Laufzeit von der Anwendung gesucht wird.
env-entry
        <env-entry-name>
        <env-entry-value>  
        <env-entry-type>

service-ref
resource-ref
message-destination-ref
resource-env-ref
@Resources      
@DeclareRoles
String[] value
Wird von einer Anwendung zur Deklaration von Rollen verwendet.
<security-role>--<role-name>
@DenyAll Ohne Gibt an, dass keine Sicherheitsrollen zulässig sind, um die angegebenen Methoden aufzurufen, d. h., dass die Methoden von der Ausführung im J2EE-Container ausgeschlossen werden müssen.
<exclude-list>--<method>
@PermitAll Ohne Gibt an, dass alle Sicherheitsrollen zulässig sind, um die angegebenen Methoden aufzurufen, d. h., dass die angegebenen Methoden gelöscht werden. Die Angabe kann in einer Klasse oder in Methoden erfolgen. Bei einer Angabe in der Klasse gilt diese Angabe für alle Methoden der Klasse. Wird die Angabe auf Methodenebene gemacht, betrifft sie nur die jeweilige Methode. Wenn @RolesAllowed auf Klassenebene angegeben wird und diese Annotation auf Methodenebene angewendet wird, überschreibt die Annotation @PermitAll die Annotation @RolesAllowed für die angegebene Methode.
<method-permission>--<method>
@RolesAllowed
String[] value
Gibt die Liste der Rollen an, die auf Methoden in einer Anwendung zugreifen dürfen. Der Wert der Annotation @RolesAllowed ist eine Liste mit Sicherheitsrollennamen. Diese Annotation kann in einer Klasse oder in Methoden angegeben werden.
<method-permission>--<role-name>
<method-permission>--<method>
@RunAs
String value
Definiert die Identität der Anwendung während der Ausführung in einem J2EE-Container. Dadurch können Entwickler die Anwendung mit einer bestimmten Rolle ausführen. Die Rolle muss den Benutzer-/Gruppeninformationen im Sicherheitsrealm des Containers zugeordnet sein. Der zugehörige Wert ist der Name einer Sicherheitsrolle.
<security-identity>--<run-as>
Symbol das den Typ des Artikels anzeigt. Referenzartikel
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: rjeeddvsannotations.html