Was macht die @ EJBs Annotation?

Ich weiß ungefähr, was diese Konstruktion bedeutet: es wird ein SomeType EJB und fügt das Objekt in eine andere EJB.

 @EJB(name="name1")
 SomeType someVariable

Nun habe ich eine Klasse, die beginnt so: (ich gebe alle Klassen-level-Anmerkungen, obwohl ich denke, dass nur die @EJBs relevant ist)

@Remote(SomeClass.class)
@Stateless(name="someName")
@EJBs({@EJB(name="name1",beanInterface=Type1.class),
       @EJB(name="name2",beanInterface=Type2.class)})
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class X extends Y{ 
  //code

Was machen die @EJB s hier tun? Sie wahrscheinlich bekommen, oder erstellen Sie den "name1" ... Objekte von JNDI, aber wo tun Sie das Ergebnis? Ich sehe nicht ein .lookup nennen, irgendwo in der Nähe, aber die Codebasis ist riesig, also bin ich nicht ganz sicher.

Bonus-Frage: ich nehme an, die beiden @Transaction Anmerkungen wiederholen Sie einfach defaults?

UPDATE: Mehrere Personen behauptet an dieser Stelle, dass @EJBs ist eine proprietäre Erweiterung. Es ist nicht. Es ist ein zentraler Teil der java EE5. Sehen die JavaDoc für details.. Es ist einfach ein container für die einzelnen @EJB Anmerkungen.

Ich glaube, jeder, der behauptet, dass diese EJB-Annotationen tun, eine Suche. Ich möchte nur wissen, was passiert mit dem Ergebnis dieser Suche.

InformationsquelleAutor der Frage hyperman | 2012-09-10

Schreibe einen Kommentar