Spring Team

Greg Turnquist

Test-bitten script junky

Clarksville, TN USA

Greg is a test-bitten script junky. He is a member of the Spring team at Pivotal. He is a major author of Spring.IO's Getting Started guides, and a contributor to Spring Boot, Spring Data REST, Spring Data Redis, and other Spring projects. He launched the Nashville JUG in 2010. He created Spring Python in 2006 and wrote "Spring Python 1.1" and "Python Testing Cookbook". He has been a Spring fan for years.
Blog Posts by Greg Turnquist

Getting Started with Spring Data REST

Hot on the heels of Spring Data's Codd GA release, there is a new Getting Started guide for Spring Data REST, Accessing Data with REST. It shows you how to create up an application with a JPA backend and a RESTful, hypermedia-driven front end.

Spring Data REST does all the heavy lifting of building a powerful RESTful front end as well as writing the JPA queries for the back end. To top it off, the guide leverages Spring Boot so you are using the latest-and-greatest from the Spring team.



It's easier than ever to create or contribute to a Getting Started Guide

Greetings Spring community!

We keep receiving feedback that Spring's Getting Started Guides are smash hit.

So far, we've migrated these guides to Asciidoctor. We have also grown our guides to include client-oriented ones. More are coming!

The final link in the chain of making these guides work in the long term are the navigational links in the sidebar of each guide. We are now using metadata to tag and link various guides together while also connecting them to relevant projects.

For example, if you visit Consuming a RESTful Web Service with AngularJS, you will see a sidebar that contains:


Spring's Getting Started Guides migrated to Asciidoctor

"If Markdown is a 1st-grader, then AsciiDoc is a PhD student."[sic] -- Dan Allen, project lead of AsciiDoctor

We recently migrated all of our Getting Started Guides to Asciidoctor. Why? Because Asciidoctor provides so many valuable features!

  • Several built in directives make it possible to pull in entire code files, small fragments of code, and external chunks of reusable content.
  • Rendering is now embedded into spring.io's website.
  • No need to "generate" the guide, which always puts you at risk of being out of sync with the code, the build files, and the document itself.
  • Lines up with how many of our projects are migrating away from DocBook towards AsciiDoctor to reduce maintenance.

Empowering your apps with Spring Boot's property support

Spring Boot is continuing to gather steam. Last month I wrote Contributing to Spring Boot with a pull request. I peeled back the layers of Spring Boot to demonstrate it's incredible autoconfiguration features and CLI support.

In this post, I want to dig into Spring Boot's amazing support for properties. Properties are something that are small, not highly visible, yet can quickly strengthen your application in very practical ways. In this post, I'll walk through how I added property support to the Spring JMS support I coded in the previous blog post.


Contributing to Spring Boot with a pull request

In case you missed this year's SpringOne 2GX conference, one of the hot keynote items was the announcement of Spring Boot. Dave Syer showed how to rapidly create a Spring MVC app with code that would fit inside a single tweet. In this blog entry, I will peel back the covers of Spring Boot and show you how it works by putting together a pull request.


Spring Boot has a powerful autoconfiguration feature. When it detects certain things on the classpath, it automatically creates beans. But one feature it doesn't yet have is support for Spring JMS. I need that feature!


Spring Python 1.1.1, 1.2.1, and 1.3.0.RC1 are released!

Amidst the flurry of Spring releases this month, Spring Python has it's own.

Versions 1.1.1 and 1.2.1 are maintenance releases that patch some bugs. Version 1.3.0.RC1 is the first release of 1.3.0.

In this release we have commits from team members, and have also merged pull requests through github. If you want to make contributions to this project, don't forget to sign the contributor license agreement.


The Spring Python team

Release Notes - Version 1.1.1


Spring Python 1.2.0.RC1 is released!

After many months of work, Spring Python's first 1.2 release is available.

The project has migrated its documentation to Sphinx, the same tool used for documenting the Python language itself. You can visit the project site and view it in HTML or download an epub version for viewing on a smart phone or tablet device.

This version of Spring Python transitions to Python 2.6, dropping support for 2.4 and 2.5. This means the team is gearing up to utilize many of the newer features of Python, which also paves the way to transition towards Python 3.x at some time in the future.


Mixing RabbitMQ with Spring Python

RabbitMQ is a powerful messaging broker based on the Advanced Message Queueing Protocol (AMQP). In an earlier post, we looked into building a Python stock ticker program. We compared using RabbitMQ's pika with py-amqplib, and how it was easy to transition from one to the other with minimal changes.

In this article, we'll show how pika can easily be used by Spring Python. Spring Python is an implementation of the concepts of Spring with the language of Python. It includes many features such as dependency injection. If we choose to build a Spring-like application in Python, it is easy to utilize pika.


Building RabbitMQ apps using Python

RabbitMQ is a powerful messaging broker based on the Advanced Message Queueing Protocol (AMQP). Thanks to the neutral nature of the AMQP spec, it is easy to connect to it from many platforms, including Python. In this blog entry, we will:

  • Create a simple stock ticker Python application
  • Create a brokerage Python application that decides when to buy and sell.
  • Compare pika, an AMQP library created by the RabbitMQ team, with py-amqplib.

You can find all the source code for this blog at http://github.com/gregturn/amqp-demo. This assumes you have already installed RabbitMQ based on instructions for your platform and fired it up. Personally, I have it running on my Mac OS X machine (snow leopard).


Spring Python 1.1 book is published

The Spring Python 1.1 book is published! Spring Python takes the concepts of the Spring Framework and Spring Security, and applies them to the world of Python.

In this book, you will be writing code using dependency injection, aspect oriented programming, data access, transaction management, remoting and security. Later on in the first case study, you will be building a banking web app and see how using all these components in concert quickly meets your needs. In the second case study you will integrate Python and Java together as you build a flight reservation system.