The Spring Blog

Engineering
Releases
News and Events

Spring Cloud 1.0.0.RC3 Available Now

Spring Cloud 1.0.0.RC3 is available now from https://repo.spring.io/libs-milestone-local. This is (hopefully) the last milestone release before 1.0.0. There were some bug fixes since 1.0.0.RC2 and also a few small new features:

  • Refactored the Feign support to look a bit more like Spring Data (so @EnableFeignClients instead of @FeignClientScan).
  • Support for multipart/form-data in the Zuul proxy
  • Support for including and excluding remote services in the automatic route registration in Zuul
  • Support for declarative Ribbon retry in Zuul
  • Cleaned up of a lot of dependencies. If you use the spring-cloud-starters you should get a nice consistent experience of adding and subtracting features. Gradle users need to use the dependency management plugin for the same experience.
  • Added small, bite-sized sample projects for integration testing of classpath isolation issues.
Read more...

Spring XD 1.1 GA and 1.0.4 released

Six months after the 1.0 GA release, the team is happy to announce the availability of Spring XD 1.1 GA.

Download Links:
* 1.1.0.RELEASE: zip, homebrew, yum.
* 1.0.4.RELEASE: zip.

Please read Sabby Anandan’s blog for a general overview of Spring XD. Specific to 1.1, a ton of features have been added. Here are some that will give you the most bang for your big data buck.

Read more...

Spring XD: Data-Driven Connectivity Within a Unified Platform

Whether you’re at home, office, or in-transit, connectivity is the norm. It’s a part of daily life that we’ve all come to expect and depend on. Connectivity between people and information is all about the movement and analysis of data: data delivers insights, and these insights must increasingly deliver immediate results to users. This level of always-on, always-available connectedness presents numerous challenges. The type of data, formats, and volume is dynamic, as are the data-producing agents.

Read more...

Better application events in Spring Framework 4.2

Application events are available since the very beginning of the Spring framework as a mean for loosely coupled components to exchange information. One of the most well known usage of application events is the following:

@Component
public class MyListener 
        implements ApplicationListener<ContextRefreshedEvent> {
  
    public void onApplicationEvent(ContextRefreshedEvent event) {
        ...
    }
}

This allows MyListener to be notified when the context has refreshed and one can use that to run arbitrary code when the application context has fully started.

Read more...

Java Doesn’t Suck - Rockin' the JVM

Recently James Ward wrote a great blog post, “Java Doesn’t Suck – You’re Just Using it Wrong”, which highlighted numerous challenges that enterprise Java developers face in their daily routines building Java applications. The good news is that breaking out of the development rut is much easier than you may think. Over the last few years, Spring has redefined how modern Java applications are built while dramatically improving development velocity. In this post, I’ll use James Ward’s blog post as a backdrop to explain how Spring helps developers rock the JVM (using Java) while tackling each of the issues James outlined.

Read more...

Webinar Replay: Documenting REST-ful APIs

Speaker: Andy Wilkinson

An API's documentation is a vital part of making it easy to understand and easy to use. RESTful APIs are no different. In this webinar we'll look at what should be included in your RESTful API's documentation and, just as importantly, what should be omitted. To illustrate this we'll look at some real-world examples of good and bad API documentation. We'll look at some of the problems and limitations of choosing a tool like Swagger to produce your API's documentation and conclude by looking at some alternatives that are better-suited to producing documentation that your users will love.

Read more...

Webinar Replay: Introducing the Java DSL for Spring Integration

Webinar: Introducing the Java DSL for Spring Integration

Speaker: Gary Russell


Slides: https://speakerdeck.com/garyrussell/spring-integration-java-dsl-a-deeper-dive


The Spring Integration JavaConfig and DSL extension provides a set of convenient Builders and a fluent API to configure Spring Integration message flows from Spring @Configuration classes. The Java DSL for Spring Integration is essentially a facade for Spring Integration. The DSL provides a simple way to embed Spring Integration Message Flows into your application using the fluent Builder pattern together with existing Java and Annotation configurations from Spring Framework and Spring Integration as well. Another useful tool to simplify configuration is Java 8 Lambdas.

Read more...

SpringOne2GX 2014 Replay: Ratpack Web Framework

Recorded at SpringOne2GX 2014.

Speaker: Dan Woods, NetFlix

G&G Special Topics

Slides: http://www.slideshare.net/SpringCentral/4pieter-springone2gx2014ratpack

Ratpack is an asynchronous web framework for the JVM that was inspired by the simplistic nature of Ruby's Sinatra framework. Written in Java, optimized for Groovy and Java 8, Ratpack sports a high throughput, simplistic interface for rapid development of rich, real-time web applications.

Read more...

SpringOne2GX 2014 Replay: Rethinking API Design with Traits

Recorded at SpringOne2GX 2014.

Speaker: Cédric Champeau

More Groovy Track

Slides: http://www.slideshare.net/SpringCentral/traits-design

Groovy 2.3 introduces the concept of traits in the language. Traits look like interfaces, but allow the developer to add both implementation and state into it. It introduces multiple inheritance in the language while avoiding the diamond problem. Traits will let you rethink the way you design APIs in Groovy, by favoriting composition of behaviors.

Read more...

SpringOne2GX 2014 Replay: Testing Grails

Recorded at SpringOne2GX 2014.

Speaker: Kenneth Kousen

Essential Grails Track

Slides: http://www.slideshare.net/SpringCentral/testing-grails

Grails comes with extensive testing support, ranging from unit to integration to functional tests. This session will demonstrate the range of options available both natively and through testing plugins. Prerequisite: Some knowledge of Grails would be helpful but not assumed.

Read more...