The Spring Blog

News and Events

SpringOne2GX 2015 Replay: Spring Cloud at Netflix

Recorded at SpringOne2GX 2015.

Speakers: Jon Schneider, Taylor Wicksell - Netflix

Web / JavaScript Track


Cloud Native Track
Spring Cloud Netflix allows you to quickly take your existing Spring Boot application and transform it into a fully cloud-ready service (even if you are operating out of a private data center).
This talk will be largely live coded, taking a simple Spring Boot app and progressively augmenting it with more and more production-ready features.
1. Service discovery – how we have extended Spring Cloud to integrate more seamlessly with Eureka.
2. Real-time Metrics – Spectator/Atlas integration, including how we fold Spring Boot Actuator metrics into Spectator. We will show you how to use the Atlas stack language to generate real-time metrics graphics.
3. Inter-service Communication/Loading Balancing - When should you choose client-side load balancing (Ribbon) over traditional server-side load balancing? We will explain how Netflix OSS can contain both a client side load balancer in Ribbon and a software router in Zuul and when to use each.
4. Managing Failure - Provide a demo of Hystrix/Spring integration with Turbine.
5. Analytics - How Spring Cloud Netflix makes Spring XD an even more powerful real-time analytics platform with real-time operational insights.


Spring on GlassFish 4.1.1 and WildFly 10 / Undertow 1.3

Even if I pointed out that there are no general news in terms of Java EE 7 platform adoption in last week’s blog post (since there is still no WebSphere Classic, WebLogic, JBoss EAP or even TomEE with full EE 7 support), the two existing open-source EE 7 platform servers - namely, GlassFish and WildFly - made some fine progress in the meantime:

  • There’s a GlassFish 4.1.1 release now, with many sub-project updates - including Tyrus for its WebSocket support.
  • And the WildFly team rushes from major release to major release, arriving at WildFly 10 GA very soon now. The underlying Undertow web server reached 1.3 GA just a few days ago.

A brief update on Java EE 7 adoption

A reminder: Every time somebody shows you a survey result with a Java EE 7 usage column, in particular when talking about production usage, double-check what they actually asked for. Does Hibernate 4.3 usage count as Java EE 7, just because it’s JPA 2.1 (EE 7 level but run standalone)? Does Tomcat 8 usage count as Java EE 7, just because it’s Servlet 3.1? And of course, does running a Spring application with any such individual providers count as EE 7?

Take such statistics with a big grain of salt: They typically do not ask for “native Java EE 7 platform usage” but are being presented that way eventually. Why is it a safe assumption that they did not ask for full Java EE 7 platform usage in production? Well, remember my blog post from back in June, which is still as valid in late 2015. In the meantime, the only real news is that there is no news since IBM released their EE 7 support in WebSphere’s Liberty Profile. All in all, responders to such survey questions are likely to answer based on “I’m using one or more specifications from that umbrella”, not on “I’m using the full platform in its intended form”.


Spring Roo 1.3.2 RC1 maintenance release now available

On behalf on the Spring Roo team at DISID Corporation, I am pleased to announce
that Spring Roo 1.3.2 RC1 released candidate is out.

Spring Roo is a rapid application development tool for Java,
allowing you to create full enterprise applications in just minutes.

Spring Roo jar files have been published to Maven Central.
As always, the release is available in the Spring IO repository.

The candidate release fixes the following issues:

  • Error adding InnerType constructor on ITD Generation ROO-3583
  • JavaBean implementing Interface defining getters and setters ROO-3584
  • JavaBean implementing Interface and overriding getter causing null pointer ROO-3585
  • Request loose additional parameters when change language ROO-3595
  • Add support to generate Generic Methods ROO-3648
  • Update Selenium to support later versions of Firefox ROO-3634
  • Add renderLabel attribute in form fields tags ROO-3639
  • JpaActiveRecord entity implementing interface with getId(): double generation ROO-3587
  • Update Tomcat7 Maven plugin version ROO-3652
  • Generate command “selenium all” ROO-3636
  • Add support to generate Generic Methods ROO-3648

Webinar Replay: A Spring Showcase: Turkcell's Personal Cloud Storage App

Webinar Replay: A Spring Showcase: Turkcell’s Personal Cloud Storage App

Speaker: Erdem Gunay


Turkcell launched a personal cloud storage service few years ago. Adding new business features was costly in terms of time and budget on the legacy solution. The user experience needed to be improved. Finally, it was decided to build a new solution where Spring Boot and Spring Framework projects play crucial role as the backbone. The project was completed just in 6 months starting from scratch. The solution was built on top of Spring Boot and many Spring IO Platform projects, allowing the development team focus on business logic instead of configuration & integration details. The project has been divided into deployable modules (API, backend, migration, test automation) accessing micro services that are responsible for one task only. Join Erdem for a review of the migration effort and new architecture - all enabled by Spring Boot.


Webinar Replay: Debug and Maintain your Spring Boot App

Speaker: Greg Turnquist

So you have decided to build an application using Spring Boot? Sooner or later, something will go wrong. It does not matter how experienced we are. How will Spring Boot help us figure out what went wrong and fix things? This talk introduces lots of tools to help us debug and manage "bootiful" apps. You will learn how to use Boot's autoconfiguration report, override Boot's settings & beans, create custom metrics/health checks/app info, and create custom JMX info & custom CRaSH commands.


Happy second birthday, Java EE 7! How is it going in production?

Note that there’s a follow-up blog post about Spring 5 system requirements. You might want to start there if you’re primarily interested in the Spring 5 planning process.

In our quest for Java EE integration, we’re trying to actively embrace the latest generation of specifications such as JPA, Bean Validation and of course the Servlet and JMS APIs. As of Spring 4, we’re supporting the Java EE 6 and 7 level of specifications side by side. We would like to raise it to the EE 7+ level (JPA 2.1, Bean Validation 1.1, and in particular Servlet 3.1 and JMS 2.0) soon but are facing a fundamental problem: the lack of EE 7 platform adoption.


Spring 4 and Java 8 adoption

As Josh mentioned in “This Week in Spring” already, Eugen Paraschiv recently did a noteworthy survey on the adoption of Spring 4 and Java 8 as well as Spring Boot:

Those are interesting numbers for us. Within the Spring universe, Java 8 adoption seems to be approaching 40%! And in terms of Spring Framework versions, Spring 4 is at 65% already, which I’m really happy to see. Even taking into account that a large part of the corporate use of Spring might not be represented in those numbers, that’s a great trend. And Pivotal’s early production support for Spring 4 on JDK 8 certainly helped in the corporate world as well.


Webinar Replay: Improving your (legacy) Application with Spring

Speaker: Marten Deinum


Source Code:

Spring has been around since the release of “J2EE Design and Development” in 2002. Spring and Java have evolved quite a bit since that time. In those years a lot of applications have been developed. All those "legacy" applications that are around have proven their value and that is why they lasted. In this session we will explore how we can improve our legacy applications by doing some refactoring or redesign (component based development) but also by introducing (newer) Spring IO technologies.


Webinar: JSTL to Thymeleaf: Transitioning Your Template

Speaker: Phil Dutson, ICON Heath and Fitness

Thymeleaf is a fantastic template engine that can help you create sites faster and get code shipped. There exists however a problem, using th e template engine requires a mind-shift in how to get "normal" tasks accomplished. This leaves many developers in the lurch and frustrated. In this talk I will cover the common pitfalls that developers can avoid and give examples on how to solve the common problems encountered when switching from the venerable JSTL to Thymeleaf.