"The 'Java EE 6 does away with the need for Spring' argument is essentially commercially motivated," Johnson said "Spring has reduced the need for traditional application servers like Oracle WebLogic and has enabled users to choose lighter-weight infrastructure. While Java EE 6 is an improvement on previous versions of Java EE, Spring offers significant additional value."
Spring works in a broader set of scenarios than Java EE 6, thus giving Spring users greater choice, said Johnson. "They may not wish to use a Java EE application server; even [if] they are on Java EE, they may not be running Java EE 6; they may be in a cloud environment where Java EE is not available; they may not be using any app server; or they may wish to be able to deploy in different scenarios. Spring's portability is highly valuable."
Spring's ecosystem solves a wider range of problems than Java EE, such as integration, batch, and nonrelational data, Johnson said. Fine-grained security is supported as well, he said. "Using the Spring component model can offer many other benefits."
Elsewhere in the Java EE realm, Oracle is looking to the planned Java EE 7 release to extend transactional capabilities of Enterprise JavaBeans and its transactional semantics, according to Oracle's Arun Gupta. "What we're doing in Java EE 7 is we are abstracting the semantics so they can be more widely applicable," for example, to Managed Beans or CDI Beans, Gupta said in Java Spotlight. With CDI Managed Beans, a managed bean is implemented by a Java class, called a bean class.
A top-level Java class is a managed bean if it is defined as so by any other Java EE technology specification or meets conditions such as not being a nonstatic inner class, according to a Java EE 6 tutorial. Java EE 7 is expected to be released this summer and featured in the GlassFish Server 4 application server.