JAX 2009: Seam 3 und Web Beans Präsentationen
Pete Muir, welcher einer der führenden Köpfe hinter dem Seam sowie Web Beans Projekt ist, hat auf der diesjährigen JAX 2009 genau über diese beiden Projekte eine Präsentation gehalten. Seine Folien hat er nun online gestellt. Beide Präsentationen sind im PDF Format und ca 1,2 MB groß. Diese Themen sind deswegen so interessant, weil die Web Beans Spezifikation (JSR 299) eine der Grundlagen für JEE 6 ist. Seam 3 implementiert auch die Web Beans und dient als Bindeglied zwischen JEE und verschiedensten anderen Frameworks.
![]() |
![]() |
(Auf das jeweile Bild klicken um die PDF Datei direkt herunterzuladen)
Im folgenden möchte ich noch kurz einen kleinen Auszug aus den Präsentationen zeigen, denn diese Folien zeigen sehr schön die Kernfunktionalitäten und Features der Web Beans Spezifikation anhand eines kleinen Code Beispiels.
Zukünftig kann jede einfache Java Klasse (POJOs) aber auch Enterprise Java Beans (EJBs) für Dependency Injection verwendet werden um sie in anderen Beans zu verwenden:
Möchte man eine Klasse in einer anderen verwenden kann man sie mit der Annotation @Current injectien. Der Binding Type @Current ist der Standardbinding Type und kann verwendet werden wenn man keinen eigenen festgelegt hat und wenn die Zuordnung zur Klassen eindeutig ist:
Würde man z.B. ein Interface verwenden und dieses zweimal implementieren kann man @Current nicht mehr verwenden sondern muss eigene Binding Types erstellen. In den meißten Fällen arbeitet man allerdings eindeutig, so dass man sich durch diesen Standardbinding Type Arbeit sparen kann.
Die zweite Variante ein Dependency Injection zu ermöglichen ist durch den Konstruktor einer Klasse. Dieser miss mit der Annotation @Initializer annotiert werden damit die durch die Web Beans verwaltete Klasse auch richtig initialisiert wird (ähnlich dem @PostConstruct bei EJB 3.0). Zudem muss man die übergebene Web Bean nicht mit @Current annotieren weil bei Konstruktoren die Web Beans automatisch injected werden:
Möchte man auf eine Bean mit der Expression Language (EL) zugreifen muss die Bean durch einen Namen bekannt gemacht werden. Dazu dient die Annotation @Named. Dabei kann man der Annotation entweder einen Namen explizit mitgeben oder den Namen der Klasse verwenden. Wird der Name der Klasse verwendet ist auch der erste Buchstabe klein gestellt:
Einmal mit @Named bekannt gemacht kann diese Bean überall mit EL verwendet werden, wie hier in diesem Beispiel in einer JSF Seite:
Wer noch ein weitere kleine Einführung in Web Beans und somit in JEE 6 haben möchte sollte sich auch die Präsentation von Gavin King über die Web Beans anschauen. In diesem Artikel habe ich auch noch ein kleines Beispiel gepostet.
Wenn du Fragen oder Anregungen zum Post hast, dann hinterlasse doch ein Kommentar oder wenn du weiterhin Artikel von Javathreads lesen möchtest, dann abonniere den RSS Feed und sehe direkt in deinem Feed Reader die nächsten Artikel.
Ähnliche Artikel, die dich interessieren könnten:
Kommentare
HI Sancar,
danke für das Lob und viel Spaß beim lesen =).
Nun zu deiner Frage: ich persönlich würde jetzt mit Seam 2.x anfangen und nicht darauf hoffen/warten, dass Seam 3 so schnell released wird. Auf seamframework.org habe ich vor kurzem gelesen, dass wohl eine Alpha Version von Seam 3 in den nächsten Monaten rauskommen soll.
Da Seam 3 stark an dem JSR 299 (Web Beans) hängt und wohl unterstützend zu JEE 6 arbeiten soll wird das ganze wohl doch noch eine Weile dauern. Eine erste Beta Version der Web Beans kann man ja jetzt schon runterladen und verwenden aber auch hier gilt, dass es bis zum ersten Release noch dauert.
Es gibt zudem noch einen weiteren kleinen Vorteil mit Seam 2.x jetzt anzufangen: Man erhält auf einer bekannten Basis mit viel Lektüre und Beispielen einen relativ einfachen Start in JEE 5 bzw. mit Seam in die zukünftige JEE 6 Richtung. Von daher würde ich ohne Bedenken mit Seam 2.x jetzt schon starten.
Übrigens habe ich auch nichts zu einem Release Plan für Seam 3 gefunden – in einem Podcast habe ich lediglich gehört, dass Seam 3 speziell für JEE 6 gedacht ist und JBoss damit auf die neuen Bedingungen in diesem Umfeld reagiert. Der Termin dürfte sich somit stark an den JEE 6 Termin halten.
Grüße
Markus
Ok danke, das hab ich mir eigtl schon gedacht. Hatte gestern noch ein paar Artikel zu JSR 299 gelesen und vieles kam mir doch schon von Seam bekannt vor.
Werde dann erstmal mein Projekt beruhigt mit Seam 2 anfangen. Naja bietet sich auch an, da ich ja das tolle Buch von Dan Allen besitze;)
Grüße
Sancar
















Erstmal ein Lob für deinen tollen Blog. Habe ihn erst heute entdeckt, werde aber in Zukunft sicher öfter vorbeischauen.
Nun zu meiner Frage:
Da ich vor habe, neben meinem Job, ein Seam Projekt anzufangen und ich nun lese das es bald Seam 3 geben soll, wann wird Seam 3 denn vorraussichtlich released? Habe leider dazu nichts gefunden.
Also lohnt es sich auf Seam 3 zu warten?
Gruß und mach weiter so.