- EJB Interfaces are Optional – @Stateless or @Stateful.
- The Singleton Beans are Here-@Singleton.
- It’s Time for Timer Service Features-@Timeout, @Schedule
- Stripped Down EJB Packaging-no need to create a separate EJB jar module. Rather, EJBs can be directly dropped into the WEB-INF/classes directory and deployed as part of the WAR. In a similar vein, the ejb-jar.xml deployment descriptor, if you happen to be using one, can be placed into the WEB-INF directory along with the web.xml file. It may also be possible to place an EJB jar into the WEB-INF/lib directory.
- Asynchronous Invocation of Session Beans-annotating a session bean method with @Asynchronous. EJB 3.1 can also support a return type of java.util.concurrent.Future<V>, where V represents the resultant value of an asynchronous invocation.
- EJB Lite is Here-use of profiles- Profiles define subsets of Java EE suited to a particular purpose. For example, the minimal Web Profile is geared towards very simple web applications. Refer – http://weblogs.java.net/blog/robc/archive/2008/02/profiles_in_the_1.html
- WebBeans(JSR 299) and EJB: Together Forever/EJBs as JSF Backing Beans/WebBeans Dependency Injection and Interceptor Enhancements – @Component, @Named, @In, @Interceptor, @Interceptors, @InterceptorBindingType, @Audited . Integrate JSF and EJB programming models, provide robust annotation-driven DI, further ease-of-use for using the Java EE interceptor model, sensible component context management for web applications. WebBeans is largely inspired by JBoss Seam as well as Google Guice. The JSR is being led by Gavin King and Bob Lee is part of the expert group.
- Standardized Global JNDI Names-(global JNDI name) – java:global[/<application-name>]/<module-name>/<bean-name>#<interface-name>
- EJB 3 Embeddable Containers on Java SE
Beyond EJB 3.1
- EJB 3 and Spring Integration
- JAX-RS Integration
- OSGi Interoperability
- EJB 3 and RIA