Spring I/O 2016

Spring I/O 2016 took place in Barcelona this year and we got a chance to fly there. Below you can read how it all went, what is worth mentioning and what we took back to work with us.

Introduction

The conference started in an unusual way with the performance of 3 girls dancing with LED hula hoops. As a real geek, I was not impressed and I wanted to see some code (which I got plenty of in the next two days..). The key note speech was presented by multiple speakers. Current state of Spring framework and info about coming releases was presented by Jurgen Hoeller. We can look forward to Spring Framework 4.3 and Spring Boot 1.4 in the coming months. More interestingly, Spring Framework 5.0 will be released at spring next year, supporting only JAVA 8+. Look at the picture below how the Spring download stats rised sharply after introducing Spring Boot.

  

After taking a look into the Spring planning, we could choose between three parallel sessions or a workshop. We chose for Josh Long's seminar named Cloud Native Java and it turned out to be the best one from the whole conference! Josh built a simple cloud application right from the scratch. It was really amazing to watch what the framework is capable of for someone who just heard about Spring cloud that day. We were told how to build configuration server (spring-cloud-config), what is the best way for service discovery (eureka server and client), how to use RabbitMQ to acknowledge change of configuration and many more new technologies (at least to me) from which I will just mention:

  • Ribbon for client side load balancing
  • Hystrix as circuit breaker
  • Hateoas
  • Feign
  • Zuul

I really recommend to watch some of Johs's videos on YouTube, because not only he makes a great overview of Spring Cloud but he does it in a really funny way. Do you know site start.spring.io? It's Josh's second favourite site on the Internet. After production. Josh is the lead contributor of bugs in Spring boot. Josh is going to use JPA because sometimes in life you make poor choices.

Josh …

 

Next sessions

In the next sessions we learned that Spring is really listening to community which is complaining about a number of annotations you have to know. So they came with a solution. New annotation! You can check new annotations on jUnit tests using Spring here.

But the biggest change everybody was talking about, was the opportunity to use custom image banners. So now when you start your boot application, your log can look like this:

 

 

After lunch we went more into depth of Spring Cloud and had a very interesting session about caching and caching using Spring. We were explained differences between Spring annotations and JCache annotations. Spring supports both of them. The most important information to take with you was this one :)

 

We ended our day with Spring Cloud workshop, which was led by Spencer Gibb. We were trying to create similar application as Josh Long created at our first session. We had two hours to finish what Josh has done in 50 minutes (not mentioning he had to present at the same time) and of course, we failed. Hopefully, we will do better at our internal TechSession at which we will do a live coding demo inspired by Josh's presentation and Spencer's workshop.

When the official program of Day 1 finished, we took buses to the after party. 400 hundred people packed in 10 x 10 square metres trying to use their two free beer tickets. Not a good idea. We were also supposed to socialize but with our poor social skills we just waited 2 hours, got the beers and went back home.

 

Day 2 

The second day started with a key note focused on reactive effort in Spring. This key note and the subsequent session created most of the buzz at the conference. People at Spring are pushing hard to make Spring reactive a part of Spring Core as of version 5. Reactive programming models allow for writing non-blocking services and applications. This requires a fundamental shift from writing imperative logic to async, non-blocking, functional-style code, in particular when interacting with external resources. A key ingredient of Spring reactive efforts are Reactive Streams, which will become part of JDK 9 (java.util.concurrent.Flow). You can have a look at specs of reactive streams here.

Reactive is the new black. There is still a lot of unresolved questions like: How would TreadLocal work?, What about @Transactional annotation?...but all these questions are being addressed. Go and have a look.

Reactive sessions were followed by the guys from Everis who described their journey in financial entity from monolitic application to microservices. They also did a nice little faux pas, as the main motto of the conference was “Make jar not war” but guess what they built :).

Last sessions we attended were Angular 2 for Spring developers (I somehow missed the Spring part), Spring integration with Spring Boot and RabbitMQ (“I don't understand why people hate XML configuration”. Really?? Compile time errors, DUH!), Testing with Spring Boot (mooore annotations) and event driven microservices (this one was OK :)).

 

Wrap up

Lessons learned: Microservices are not only a buzz word but it seems like already everybody is using them. Spring Cloud is the way to go if you are using Java and deploying to cloud. Reactive, everything will be reactive. Soon...

Publikované: 17. jún 2016 10:24 | Počet prečítaní: 1223
  • Martin Mitro

    Java Developer

    Martin v Davinci software pracuje ako Java Developer, ale venuje sa aj databázam. Vo voľnom čase pracuje na appkách pre Android, ktoré ho, podľa jeho slov, urobia boháčom. Medzi kolegami si buduje povesť veľkého fanúšika Mira Jaroša. Jeho obľúbeným hudobným štýlom je však electro. Zo športov mu najviac imponuje reálny futbal (žiadna FIFA). Neznáša kolobežkovanie.

We want you

Do you see yourself working with us? Check out our vacancies. Is your ideal vacancy not in the list? Please send an open application. We are interested in new talents, both young and experienced.

Join us