The Spring Blog
News and Events

In my third post I discussed how to use WebDriver to make designing our tests easier with the Page Object Pattern. In this post, I'm going to discuss how to use Geb to make our testing with MockMvc more Groovy.

Why Geb and MockMvc

Geb is backed by WebDriver, so it offers many of the same benefits we got from WebDriver. However, Geb makes things even easier by taking care of some of the boiler plate code for us. Of course we want to use MockMvc so that we do no need to deploy our code to a server. The easiest way to understand the benefits of using Geb is to jump into an example.


Welcome to another installment of This Week in Spring! This week, I'm in Paris, France talking to developers about Spring Framework 4.0, Spring Boot, and more at Devoxx FR. Next week it's off to Bangalore, India for the Great Indian Developer Summit. As always, ping me online if you're around either location and want to talk Spring.

  1. Tuesday April 30th Webinar - don't miss Ashley Puls (New Relic) and myself as they track and trace through modern web apps: Web Application Diagnostics with Java and Javascript
  2. Tuesday April 22nd Webinar - see what stole the EclipseCon 2014 keynote: Martin Lippert and Mike Milinkovich demoing alpha versions of Project Flux: Connecting Eclipse to the Cloud-Based Era of Developer Tooling. Register today!
  3. Thomas Risberg and Janne Valkealahti show how they can use a single programming model / configuration model for Java MapReduce, Streaming, Hive, Pig, Cascading, or HBase in this SpringOne2GX 2013 Replay: Getting started with Spring Data and Apache Hadoop
  4. 90 minutes with Jags Ramnarayan and Anthony Baker at SpringOne2GX 2013: In-memory data and compute on top of Hadoop
  5. Check out Kevin Nilson (Google) and myself co-presenting at SpringOne2GX 2013 on Spring Profiles, and how it is an amazing tool for managing code through the normal dev/stage/production lifecycle: Multi Environment Spring Applications.
  6. I'm back with Roy Clarkson at SpringOne2GX 2013 talking about Spring Mobile/Android, REST/OAUTH and more in: Building Smart Clients with Spring
  7. Erdem Günay has put together a very nice post on how he used the Spring Expression Language (SpEL) and Spring Boot to dynamically send remote installation instructions to a wide array of Android clients, dynamically.
  8. Our pal Sam Brannen is going to be speaking at the Atlanta Spring User Group! One of the smart
  9. Moritz Schulze put together a very, very detailed post on how his company developed a time tracking, vacation-time managing application called Trackr with Java 8 and Spring Boot
  10. Mario Arias has put together a version of the Spring relational data Getting Started Guide using the Kotlin language. Kotlin is JetBrains' statically typed programming language to JVM byte codes and JavaScript. Very cool! I have never seen the kotlinprimavera module(s) before, but I dig it!
  11. Patrick Chanezon, director of enterprise evangelism at Microsoft, sat in on the vJUG meetup talk I gave on Spring Boot recently and set about hacking! The result is some guidance on how to deploy a Spring Boot application to Microsoft's Azure PaaS. Nice! Merci, Patrick!
  12. Hai Nguyen has put together a very nice post on how to configure / consume an embedded Jetty's JNDI-bound DataSource
  13. Did you miss Spring framework lead Juergen Hoeller's epic talk about Spring 4 and Java 8 from GOTO Amsterdam? Have no fear, you can watch it online!
  14. This is a particularly PaaSy This Week in Spring! Kim Saabye Pedersen has written a nice post on using Spring Boot on RedHat's OpenShift PaaS
  15. Our friend Petri Kainulainen is back, this time with a very nice post on using JOOQ with Spring. Petri's an amazing person to have in the community. I hope you don't need me to tell you that. Bookmark his site. It's almost always worth it.
  16. Our pal at Netflix, Tomás Lin, is back! This time he's got a post on bundling web content with Spring Boot and Gradle
  17. Michael Simons posted a very detailed post on how he's developing a Boot web application. Thanks for the detailed writeup, Michael. Very valuable feedback.

We are pleased to announce that the Spring Integration 4.0 release candidate (4.0.0.RC1) is now available. Please use the Milestone Repository with maven or gradle, download a distribution archive, or see the project home page for links to the updated documentation, and Maven/Gradle configuration details.

The release includes several bug fixes, some new features and further improvements with the GA release due near the end of April.

Here is a summary of major changes since the last milestone

@Poller and @InboundChannelAdapter


Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speaker: Jags Ramnarayan, Anthony Baker

Hadoop gives us dramatic volume scalability at a cheap price. But core Hadoop is designed for sequential access - write once and read many times; making it impossible to use hadoop from a real-time/online application. Add a distributed in-memory tier in front and you could get the best of two worlds - very high speed, concurrency and the ability to scale to very large volume. We present the seamless integration of in-memory data grids with hadoop to achieve interesting new design patterns - ingesting raw or processed data into hadoop, random read-writes on operational data in memory or massive historical data in Hadoop with O(1) lookup times, zero ETL Map-reduce processing, enabling deep-scale SQL processing on data in Hadoop or the ability to easily output analytic models from hadoop into memory. We introduce and present the ideas and code samples through Pivotal in-memory real-time and the Hadoop platform.


Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speakers: Thomas Risberg, Janne Valkealahti

Big data and Hadoop is widely considered to be the next generation data platform. Hadoop is notoriously difficult to work with and just diving in and starting coding can easily lead to frustration. A better way is to leverage your existing Java and Spring skills to take advantage of these new technologies. In this presentation we will introduce Spring Data for Apache Hadoop and see how it can make working with Hadoop easier. We will also cover several ways to install a small Hadoop cluster that can be used to test your new Hadoop applications.


Spring's caching abstraction is available as from Spring 3.1 and it was about time to show it some more love. In this post, I want to walk you through the major improvement in that area which is the JCache (JSR-107) annotations support.

As you may have heard, JSR-107 went final after all, 13 years after the initial proposal. For those who are familiar with Spring’s caching annotations, the following table describes the mapping between the Spring annotations and the JSR-107 counterpart:

Spring JSR-107
@Cacheable @CacheResult
@CachePut @CachePut
@CacheEvict @CacheRemove
@CacheEvict(allEntries=true) @CacheRemoveAll

We are pleased to announce that Spring Batch 2.2.6.RELEASE is now available via Maven Central, Github and the SpringSource download repository. This is the 6th maintenance release for the 2.2.x branch of Spring Batch and addresses a number of bugs, a few minor enhancements, and documentation updates. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback.


Almost ten years ago Adrian Colyer wrote a memorable blog post, giving the best explanation on aspect oriented programming (AOP) out there: clear and simple style, accurate content, no buzzwords. If you've taken a look at the the earlier two posts in this series, you may have noticed some of our architecture choices in the client module of the Sagan application, including the use of JavaScript modules.

In this post, I want to walk you through the basics of JavaScript modules in the style of Adrian's post: clear, simple, accurate, no buzzwords!


Welcome to another installment of This Week in Spring!

Tomorrow, I'll be presenting on the vJUG, a virtual JUG, about Spring Boot. Don't tell anyone, but the presentation itself is going to be based on a talk that Spring Boot co-founder Phil Webb and I have been planning. The code is already online, so check it out and I look forward to seeing you tomorrow! If you miss the talk, and you happen to be in the bay area, then join us on Thursday evening at the Pivotal offices here in San Francisco for a more caffeinated version of the same talk with both Phil and myself!


Speaker: Josh Long

Alright, so maybe "bootiful" won't ever work, but I tried, and it was worth it too because you're reading this. Spring Boot, the new convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring's flexibility with conventional, common sense defaults to make application development not just fly, but pleasant! Join Spring developer advocate Josh Long for a look at what Spring Boot is, why it's turning heads, why you should consider it for your next application (REST, web, batch, big-data, integration, whatever!) and how to get started.