The second milestone release toward Spring Framework 3.2 is now available from the SpringSource repository. If you're not already familiar, see our quick tutorial on resolving these artifacts via Maven. The complete distribution zip is available as usual from the SpringSource community download site.
Be sure to catch up on the changes in 3.2 M1 if you haven't already.
Highlights from 3.2 M2 include:
- Asynchronous @Controller method support now complete (blog post)
- Many additional Spring MVC improvements, including plenty of REST support, e.g. content negotiation.
- Spring TestContext improvements
- Spring Expression Language (SpEL) improvements and fixes
- Overall, 45 bugs fixed, 11 new features and 58 improvements implemented.
A major area of focus for 3.2 is ensuring that Spring Framework runs flawlessly on JDK7. M2 artifacts have been built, tested and published against JDK7 and we continue to test JDK6 compatibility in nightly builds as well. We encourage all Spring users on JDK7 to give M2 a spin in your development and test environments and provide as much feedback as possible prior to 3.2 GA. Thanks!
Users of @Configuration classes and Spring's support for subclass proxies (proxy-target-class=true), please take note: it is now no longer necessary to add CGLIB as an explicit dependency to work with these features. As of 3.2 M2, we have upgraded to the new CGLIB 3.0. We repackage all net.sf.cglib classes to org.springframework.cglib and inline them directly within the spring-core JAR. This means that all @Configuration and subclass proxying functionality works out of the box in M2, and means no potential for CGLIB conflicts with other projects. Likewise, we have upgraded to the new ASM 4.0, which we continue to repackage and inline as we have done for quite some time now. Note however that we've eliminated the dedicated spring-asm jar in M2 in favor of including org.springframework.asm classes directly in spring-core. Both of these upgrades are good news for JDK7 users writing Spring components in dynamic JVM languages, as these new versions of CGLIB and ASM properly handle the new invokedynamic bytecode instruction introduced in JDK7.