Presentation: Spring Framework 5 - Preview & Roadmap




10:35am - 11:25am

Day of week:

Key Takeaways

  • Hear directly from Juergen Hoeller on where Spring 5 is heading.
  • Learn more how Reactive, JDK 9, Jigsaw, and HTTP/2 will affect the Spring story.
  • Get an inside look into how the Spring Framework 5 team works.


The Spring team is busily working on Spring Framework 5.0, with a release candidate scheduled for Q4 2016. This presentation covers the key themes in Spring 5, based on the current state of development: going Java 8+ across the entire framework codebase, comprehensive support for JDK 9, a strong focus on HTTP/2, and first-class support for Spring-style reactive architectures.


What are you going to discuss in this talk?
Juergen: There is quite a mix of things in there.
There will be a little bit of coverage of Jigsaw, the JDK’s module system, just a little to the degree that it matters for us. With Jigsaw, we are within the early feedback loop of the OpenJDK team, so I am very familiar with the current limitations and where we need it to be. I am not going to spend a ton of time on it but I am referring to it since it is one of the major work streams we have for Spring 5.
Another topic is our reactive story, our Spring Reactive R&D project... and a couple of things around this like our general understanding of what benefits it has for a framework to raise the baseline, in our case to Java 8+.
I am going to explain why we are doing things in a certain way and not just what we are doing so that people can get a little bit of a perspective of the challenges that a framework provider has as opposed to just a user. Usually people appreciate that since they don’t get that kind of insight from anywhere. Nobody tells them why things turn out the way they are and why things take as long as they do.
QCon: Can you detail this a bit?
Juergen: We already have a pretty advanced prototype. It’s an R&D project on GitHub called spring-reactive that is to be merged into Spring Framework 5 to the master in June (roughly). The project is pretty far along and it will be shut down at that point and we are working towards a Spring Framework 5 M1 with a release date in late June or early July where it has already rolled in. That is the first time that there is going to be a binary snapshot of those things. The R&D itself is just for people who want to look at the source or build it themselves. Half of developers from the core framework actually works on the reactive efforts at the moment, so we really mean it.
QCon: What else are you working on?
Juergen: There is the JDK 9 topic and everything that needs to happen there since JDK 9 and Spring 5 have the same GA target at the moment, so we will just make sure that everything that can come together there actually does so in a comprehensive way.
QCon: What about HTTP/2?
Juergen: It’s one of the topics I care about most. If we as an industry want to move forward, we would rather use our latest infrastructure and latest protocols. We are in close contact with the Jetty guys and the Tomcat guys in particular. The use in Spring is mostly transparent. In the Spring 4 generation there is not going to be dedicated framework support for any HTTP/2 feature but there is support for running on HTTP/2 enabled servers such as Jetty 9.3 and the upcoming Tomcat 8.1.
The other end is actually quite a subtle twist. In preparation for HTTP/2, we had to remove some of our default exposure of completely outdated HTTP headers like what people used to do in the early days. Don’t cache that thing right? Expires header, cache control header, all next to each other. That actually prevents some of the HTTP/2 infrastructure from doing its job because they opt out of HTTP/2 if you set pre 1.1 headers. We updated our default exposure to do only state of the art headers as of 4.2.
In 5.0 it is going to be a little bit more first class. We intend to expose some HTTP/2 stuff explicitly in the programming model like programmatic pushes, those sorts of things. But there is actually not that much. We might be able to do a little bit with stream prioritization in the reactive web endpoint model. But generally, HTTP/2 is pretty transparent as it should be.


Covering innovative topics

Monday, 7 March

Tuesday, 8 March

Wednesday, 9 March

Conference for Professional Software Developers