Spring 3.0 preview at Spring user group meeting

Yesterday I went to an excellent talk given by Rick Evans of prior SpringSource fame on Spring 3.0 and what’s upcoming. Here’s a summary taken from the Spring 3.0 M1 changelog.


Changes in version 3.0.0.M1 (2008-12-05)

* revised project layout and build system (module-based sources, bundle repository)
* updated entire codebase for Java 5 code style (generics, varargs, StringBuilder)
* updated to JUnit 4.5 and JRuby 1.1
* removed WebLogic 8.1 and WebSphere 5.1 support
* removed native TopLink API support (superseded by JPA)
* removed Commons Attributes support (superseded by Java 5 annotations)
* removed Jakarta JSTL support for JSP 1.2 (superseded by JSP 2.0)
* removed outdated Struts 1.x Action delegation support
* removed ContextLoaderServlet and Log4jConfigServlet
* deprecated form controller hierarchy in favor of @MVC form object handling
* deprecated JUnit 3.8 test class hierarchy in favor of test context framework
* introduced Spring EL parser in org.springframework.expression package
* introduced #{...} expression support in bean definitions
* introduced @Value annotation for embedded expression support
* introduced @PathVariable annotation for MVC handler methods
* introduced ShallowEtagHeaderFilter
* introduced AbstractAtomFeedView and AbstractRssFeedView
* introduced default value support for @RequestParam
* introduced @RequestHeader annotation for MVC handler methods
* introduced "spring:url" and "spring:param" JSP tags

Although Spring 3.0 offers REST it is important to note that it doesn’t implement JAX-RS like CXF and Jersey do. However the API is, characteristically of Spring, very easy to use, concise and intuitive. It is a natural evolution of Spring MVC but with the added power of object xml mapping taken from Spring WS. The Spring Expression language seems very powerful in enabling metadata injection into beans and even offers deferred evaluation as per the usual Spring scopes – however I’m not sure of the potential real world applications of this feature as yet. The clear inclination and transition towards annotations became evident with the deprecation of the controller hierarchy in favour of Spring @MVC style. This is hardly surprising with Sun, JSRs and the majority public favouring annotations. Another little addition that is a favourite of mine is the @RequestHeader annotation which I’ve needed for quite some time. All in all it’s a welcome release and I look forward to looking at it in more detail over time.

Leave a Reply