In dieser Session stellen Michael Chen von BEA und Rod Johnson vor, wie die Integration von Spring in Web Logic und vor allem auch die Implementierung von EJB 3 auf der Basis von Spring. Michael Chen began damit, dass er die Motivation von BEA für diesen Schritt vorstellte. Dabei hatte er auch eine Folie, auf der folgendes Zitat enthalten war: "EJB 3 ist Dependency Injection und AOP von 2003". Er stellten dann dar, dass er gerne Technologien bauen will, die den Leuten wirklich hilft und die sie gerne benutzen, was eben zu der Integration von Spring geführt hat. BEA will auch weiterhin den besten EJB Container anbieten. Dabei soll Weblogic weiterhin die bekannte Stabilität und Quality of Service bieten und auf der anderen Seite soll auf die bekannten WLS-Technologien wie EJB 2, Clustering, Fail Over , Transaktionen und Sicherheit zugegriffen werden können. Auf der anderen Seite soll von Spring die Einfachheit in der Nutzung übernommen werden.
Dependency Injection und AOP in Spring sind eine Obermenge von dem, was EJB 3 anbietet. Daher kann man auf dieser Basis die Features von EJB 3 recht einfach implementieren. Da Spring sehr flexibel ist, kann man die Features auch ohne größere Umstände implementieren.
Besonders interessant war dann, dass EJBs mit WLS auch Spring Beans sind. Daher kann man Spring Beans in EJB injekten und umgekehrt und zwar ohne, dass JNDI irgendwo benötigt würde. Dafür wird eine Datei im EJB-Jar verwendet (/META-INF/spring-ejb-jar.xml). Der Name der Spring-Bean ist dabei der EJB-Name was per default der kurze Klassenname ist.
Auch hier zeigte Rod wieder, dass selbst in den EJB 3 Samples aus der Spezifikation versteckte Probleme sind (z.B. Array-Zugriffe, die ArrayIndexOutOfBounds werden können) und dass die typsicheren Advices von Spring ein echter Vorteil sind, der dieses Problem beseitigt.
Also wird in Zukunft bei BEA WebLogic ohne weiteres ein hybrider Programmieransatz mit Spring und EJB möglich sein, so dass die Grenzen zunehmend verschwimmen. Gleichzeitig können die Features durch Pitchfork auch außerhalb eines EJB-Containers genutzt werden.