The Spring Blog

News and Events

This Week in Spring - March 29th, 2016

Welcome to another installation of This Week in Spring! This week I’m working with customers and trying to bring the Spring (and hoping for the according weather!) to hitherto snow-covered Denver, Colorado.


The Spring Boot Dashboard in STS - Part 5: Working with Launch configurations

Welcome back Spring community,

in this fifth part of the series we will take a closer look at the new support for multiple launch configurations that was added to the Spring Boot Dashboard in STS 3.7.3.

Multiple launch configs per project

The first version the boot dashboard allowed you to quickly start and stop a local Spring Boot app. Therefore the boot dashboard focused on one specific launch configuration for the project - and completely ignored other launch configs. But having multiple launch configurations per project can be extremely useful, for example to start the same app multiple times in slightly different configurations.


Spring Cloud Brixton.RC1 is now available

On behalf of the team, I am pleased to announce that the first release candidate for the Spring Cloud Brixton Release Train is out. The milestone is available today and can be found in our Spring Milestone repository.


Some of the highlights of the Brixton Release Train are:

  • Spring Boot 1.3.x and Spring 4.2.x support
  • Cluster Leadership election and locks via Spring Cloud Cluster
  • Hashicorp Consul support for service registration/discovery & configuration via Spring Cloud Consul
  • Apache Zookeeper support for service registration/discovery, configuration via Spring Cloud Zookeper and leader election in Spring Cloud Cluster
  • Distributed tracing through the Spring Cloud Sleuth abstraction with two out of the box implementations: one supporting logging (ideal for log collectors and multiplexers like Logstash and Loggregator) and one supporting Twitter’s Zipkin
  • Netflix Atlas Telemetry System and the next generation Spectator Metrics library are available in Spring Cloud Netflix
  • Spring Cloud Bus is now powered by the recently released Spring Cloud Stream

This Week in Spring - March 22nd, 2016

Welcome to another installation of This Week in Spring! As usual, we’ve got a lot to cover so let’s get to it! This week I’m supposed to be in Paris and Belgium. Unfortunately, because of the recent, tragic, disgusting and cowardly attacks on the Brussels airport and metro, I am not entirely sure about whether I’ll be in Belgium physically. Tonight’s meetup talk, however, will carry on remotely, via streaming. Stay tuned to my Twitter handle - @starbuxman for more.

That said, there’s a lot of great content so let’s get to it!


The Spring Boot Dashboard in STS - Part 4: Working with Cloud Foundry manifest files

Welcome back Spring community,

the latest release 3.7.3 of the Spring Tool Suite introduces a number of new features around the Spring Boot Dashboard. Therefore we continue the blog post series that started last year and introduced you to the new way of working with Spring Boot based microservice projects in your IDE (you can find links to the previous parts at the bottom).

Cloud Foundry manifest files

In this new part of the series we take a closer look at Cloud Foundry manifest files. They are a Cloud Foundry concept used as a shortcut to define configurations for applications on Cloud Foundry. Instead of passing every argument and configuration to the command line when doing a “cf push”, you can put all your configuration data into a YAML file and pass that to the push command instead. More detailed information about Cloud Foundry Manifest files can be found here.


A Geospatial Messenger with Kotlin, Spring Boot and PostgreSQL

Following my first Kotlin blog post, today I want introduce the new Spring Boot + Kotlin application I have developed for my upcoming Spring I/O 2016 conference talk “Developing Geospatial Web Services with Kotlin and Spring Boot”.

Dealing with native database functionalities

One of the goal of this application is to see how to take advantage of native database functionalities like we do in NoSQL world. Here we want to use Geospatial support provided by PostGIS, the spatial database extender for PostgreSQL. Native JSON support could also be a good use case.


This Week in Spring - March 15th, 2016

Welcome to another installment of This Week in Spring! What a crazy week it’s been since we last talked! I spent a day in San Francisco, Germany, Scotland, and Romania between Monday and Friday last. It’s nice this week to be in (warm!) southern California in Los Angeles and San Diego speaking to customers and at a couple of meetups! If you’re around, I hope you’ll join me for the Cloud Native Meetup here in Los Angeles (tonight!).


Spring for Apache Kafka Milestone 1 Available

I am pleased to announce that the spring-kafka (Spring for Apache Kafka) first milestone is now available (1.0.0.M1).

The existing spring-integration-kafka extension project - currently at version 1.3.0.RELEASE supports Kafka 0.8.x.x and is used in Spring XD (Kafka MessageBus) and Spring Cloud Stream (Kafka Binder).

This new project (spring-kafka) breaks out the core components into a separate project. It is based on the new 0.9.0.x pure Java Kafka clients.

spring-kafka brings the familiar Spring programming model to Apache Kafka for any Spring user, not just those using Spring Integration. An upcoming spring-integration-kafka release will be a complete rewrite, utilizing the spring-kafka project internally.


This Week in Spring - March 8th, 2016

Welcome to another installment of This Week in Spring! This week I’m in Bruhl, Germany for the amazing JavaLand show, then it’s off to Scotland to visit a large customer, and then it’s off to Romania for Voxxed Days Bucharest. If you’re in any of those places, I’d love to connect!


Core container refinements in Spring Framework 4.3

Spring Framework 4.3.RC1 is around the corner and brings nice core container refinements which we are going to explore in this post…

Implicit constructor injection for single-constructor scenarios

Consider the following service class:

public class FooService {

    private final FooRepository repository;

    public FooService(FooRepository repository) {
        this.repository = repository

Quite a common use case but if you forget the @Autowired annotation on the constructor, the container will throw an exception looking for a default constructor, unless you explicitly indicate autowire mode ‘constructor’ in your bean definition setup (e.g. in an XML <bean>).