Welcome to another installment of This Week in Spring! Some rather exciting projects have been announced this week, and if you can believe it, we're almost out of SpringOne 2012 replay content! Good thing the SpringOne 2013 agenda grid is going live very soon, so we'll be able to look ahead. As usual, we've got a lot to cover so let's get to it!
In preparation for the agenda grid going live, a lot of new SpringOne 2013 sessions have been accepted:
- Getting Started with Spring Security 3.2 (Rob Winch)
- Performance-tuning the Spring Petclinic sample application (Julien Dubois - Ippon Technologies)
- Spring with Immutability (Matt Stine)
- Going Beyond Dependency Injection (Mark Secrist)
- Tooling for Spring's next generation (Martin Lippert, Andy Clement)
- Futures and Rx Observables: powerful abstractions for consuming web services asynchronously (Chris Richardson)
- Making Connections with Spring Social (Craig Walls)
- Troubleshooting Live Java Web Applications (Ashley Puls - New Relic)
- Spring and Sencha - A Match Made In Heaven, or at least the Cloud - (Jay Marshall + TBA, Sencha)
- In-memory data and compute on top of Hadoop (Jags Ramnarayan)
- Getting started with Spring Data and Apache Hadoop (Thomas Risberg)
- Inside Cloud Foundry: An Architectural Review - (Dekel Tankel)
- Build Your Very Own Private Cloud Foundry (Matt Stine)
- Thymeleaf: improving your Spring view layer with natural templates (Emanuel Rabina - HP)
- Jon Brisbin announced the Reactor project. The Reactor project aims to provide a solid foundation for asynchronous IO-based applications, on top of which it is natural to provide integrations for technologies like Grails and Spring. Reactor already features a good multi-language story with support for Groovy and Java (and, particularly, the upcoming Java 8 release!) Be sure to check this out, especially the comments section if you have questions about how this compares to other asynch technology!
- Spring Security lead Rob Winch has been busily enhancing the Spring Security and Spring Security OAuth Java Configuration story. He's got a first cut of the Spring Security OAuth Java Configuration API available, and I'm sure he'd appreciate any feedback on the new DSL, so definitely be sure to check it out! Nice work, Rob!
- Webinar on Thursday May 16th with Chris Richardson, author of POJOs in Action, on Decomposing Application for Deployability and Scalabilty. Register Now!
- This is an essential talk to understanding the new application architectures discussed in the SpringOne 2012 keynote - how to break down large applications into small, scalable, discrete services. It's tough not to use NetFlix's Asgard as a great example of this done well, an example that many of you may recognize.
JmsTemplateis not evil" - explains some of the subtleties of using Spring's
CachingConnectionFactorywith a raw
ConnectionFactoryand then, for extra points, introduces one approach to dramatically speeding up ActiveMQ, in particular.
The HMKcode blog has a nice, exhaustive post introducing how to use the
jQuery-file-uploadplugin with Spring MVC. Have you taken a look at HATEOAS yet? HATEOAS is a design pattern, an approach, for building better RESTful web services. Spring HATEOAS makes doing so dead simple atop Spring MVC, and this blog by Geraint Jones introduces Spring HATEAOS very nicely Blogger Alexey Zvolinskiy answers a common question: how do I bind checkboxes to the model object that's sent back and forth to the server in Spring MVC? Our friend @baeldung maintains a daily Twitter feed of awesome posts about Spring on StackOverflow, and I think he's dug up some absolutely amazing content. One post answers a question I am frequently asked: how do I enumerate all the Spring MVC
@Controller-annotated beans at runtime? Another great post that I found while trawling through the @SpringAtSO handle was this post, explaining how to propagate request-scoped attributes beyond the thread of the current request. This post applies generally to any situation where a request-scoped attribute needs to propagate beyond its original thread and request.