Spring advocates who gathered at the SpringOne 2GX conference in Silicon Valley this week attest to the strength of the framework, which has long been intended to offer conveniences not initially found in enterprise Java. Java EE has since added capabilities that already had been in Spring, such as dependency injection, which can simplify unit testing.
“My preference is still Spring,” said Morten Sorensen, a freelance Java consultant in Copenhagen. “I have some prejudices against Java EE because I left it 10 years ago because it was downright unusable. I still find it clunky, though, whenever I’m subjected to it.” Sorenson favors the way Spring creates consistent code, for example. “Spring has just been more forward-looking for years now.” But Spring is now under pressure, technically, from technologies like Java EE and the Akka Scala middleware technology, he said.
Oracle has posted blogs on how to migrate from Spring to Java EE, dating back to 2011. Officials at Pivotal, the company that oversees Spring, insist Spring offers a technical advantage over Java EE and still registers millions of downloads. “Spring is a download machine,” said Pieter Humphrey, a Pivotal product marketing manager, who also noted that Spring and Java EE are symbiotic, with Spring supporting a lot of Java EE.
Pivotal officials stress that Spring stays on the cutting edge. “Spring is innovating and advancing in areas where Java EE 7 is not even touching,” such as big data, Hadoop, NoSQL database support, and batch processing, said Graeme Rocher, who is project lead for the Grails framework at Pivotal. And unlike Spring, Oracle’s Java EE is subject to the slow-moving JCP (Java Community Process) when attempting to add new features, Rocher said.
Spring Framework 4.0, due out by the end of this year, is set to align with the upcoming Java Standard Edition 8 release, with such capabilities as lambda expressions and new APIs, and feature Java EE 7 capabilities like JMS (Java Message Service) 2.0. Spring 4.0 accommodates the WebSocket specification for bidirectional communication between browser and server components in real-time Web applications.
This week, Pivotal announced the Spring IO Platform, which is intended to increase developer productivity, integrates devops capabilities and enables new classes of applications, such as big data systems. Key components of Spring IO include Foundation, which features APIs and embeddable runtime components for building enterprise applications, and Execution, offering domain-specific runtimes for applications built on the IO Foundation. DSRs can stand alone without requiring deployment to an external container.