Spring I/O 2016 Barcelona - Day 1

 

This year I attended the Spring I/O conference and this is my experience from the conference.

Spring I/O 2016 Format

Spring I/O is a two day conference full of Java with Spring content with keynotes, presentations and workshops.

A day's schedule would look like:

  • Registration phase (8-9 am)
  • a keynote presentation ~(9-10 am) (everybody attended)
  • presentations (1 hour duration)/workshops (2 hour content)
  • coffee breaks and lunch break

What happened in Keynote

The conference opened of course with an emphasis on the changes that are coming to Spring Framework.

Spring Boot 1.4 GA is coming out soon with features like

  • error page convention (e.x. 404.html)
  • constructor injection without @Autowired
  • Caffeine cache
  • better test support
  • paving the way for the new release of Spring Framework 5

Spring Framework will bring Reactive Support through Project Reactor and will compile against JDK9 (in spite of JDK9 planned GA release of March 2017)

Spring Framework 5 is scheduled to go GA in December 2016. Spring Framework 4 will get into maintenance mode for 4 years. Spring Framework 3 will seize to be maintained (already completed its 4 year maintenance releases support)

Http/2 will become common thing with the adoption of Tomcat/Jetty/Undertow/Netty native http/2 support

Project Web Reactive will be merged into the Spring master branch soon.

DDD & REST – DOMAIN DRIVEN APIS FOR THE WEB by OLIVER GIERKE (2 hour workshop)

Really loved his presentation, the guy knows his stuff. I am a fan of the Spring Data project and I love the power and flexibility that it gives you.

 

https://www.infoq.com/minibooks/domain-driven-design-quickly- Domain Driven Design 100 page summary

https://speakerdeck.com/olivergierke/domain-driven-design-and-rest-1 - workshop slides

 

A LITE RX API FOR THE JVM by SÉBASTIEN DELEUZE and STEPHANE MALDINI

I found the reactive workshop really helpful and informative. It gave me a lot of bits that I was missing. Spring Reactor overall support is still not there yet (Spring Data, Security etc, database non-blocking drivers).

The guys compared Mono and Flux to Future and CompletableFuture from Java and Observable/Single from RxJava. What really struck me was that although CompletableFuture is a nice tool (I use it sparingly in my code) it is still pull based and would consume more memory than any other push based implementation (vs Observable/Single or vs Flux/Mono). These guys are also working on the reactive streams specification that will be included in JDK9.

IMHO: Reactive is over hyped, imperative programs are easier to code and maintain and of course reactive programming is not the silver bullet for every problem. Spring will make it easier to code "the reactive way" but that doesn't mean that as programmers we should use it without grasping it.

 

links:

https://speakerdeck.com/sdeleuze/a-lite-rx-api-for-the-jvm - first hour presentation

https://github.com/reactor/lite-rx-api-hands-on - workshop code

http://akarnokd.blogspot.gr/2016/03/operator-fusion-part-1.html - from RxJava core committer

http://www.reactive-streams.org/ - reactive streams abstract specification

https://mongodb.github.io/mongo-java-driver-reactivestreams/ - mongodb reactive streams implementation

https://github.com/couchbase/couchbase-java-client - supports non-blocking through RxJava and Netty

https://github.com/alaisi/postgres-async-driver - postgres async driver

 

CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES by MICHAEL PLÖD

Caching was a great talk also. It had the second highest attendance.

Caching seems simple but many fellow devs seem to get it wrong all the time.

links:

https://www.innoq.com/de/talks/2016/05/caching-spring-best-practices/

 

MODERN JAVA COMPONENT DESIGN WITH SPRING 4.3 by JUERGEN HOELLER

Design components showed around the quirks and annotations of spring framework (no field injection allowed :p).

links:

https://speakerdeck.com/rigadevday/modern-java-component-design-with-spr...

 

JUNIT 5 – SHAPING THE FUTURE OF TESTING ON THE JVM by SAM BRANNEN

Junit5 guy is a great speaker. Core committer on the jUnit5, he showed us the bits around new features support for Spring and even printed out emoji after test execution.

Really enjoyed the talk.

links:

http://www.slideshare.net/sbrannen/junit-5-from-lambda-to-alpha-and-beyond

Talks (pending links)

 

TALK LINK TO PRESENTATION
KEYNOTE – FROM SPRING FRAMEWORK 4.3 TO 5.0 by JUERGEN HOELLER, STÉPHANE NICOLL AND PHIL WEBB  
CLOUD NATIVE JAVA by JOSH LONG  
ARCHITECTING YOUR CODEBASE by KAMIL SZYMAŃSKI  
CUSTOMIZE YOUR SPRING BOOT EXPERIENCE BY WRITING YOUR OWN SPRING BOOT STARTER by MICHAEL SIMONS https://github.com/michael-simons/springio2016
10 WAYS TO GET SUPER-PRODUCTIVE WITH SPRING BOOT by BRIAN CLOZEL AND STÉPHANE NICOLL  
WHAT’S NEW IN JHIPSTER IN 2016 by JULIEN DUBOIS  
BRINGING NEW LIFE TO THE VIEW LAYER OF SPRING WEB APPS WITH THYMELEAF by DANIEL FERNÁNDEZ  
DDD & REST – DOMAIN DRIVEN APIS FOR THE WEB by OLIVER GIERKE https://speakerdeck.com/olivergierke/domain-driven-design-and-rest-1
SPRING CLOUD *: EXLORING SPRING CLOUD IMPLEMENTATIONS by SPENCER GIBB  
WHAT’S NEW IN SPRING DATA? by OLIVER GIERKE https://speakerdeck.com/olivergierke/whats-new-in-spring-data-3
FLAVORS OF CONCURRENCY IN JAVA by OLEG ŠELAJEV https://speakerdeck.com/shelajev/flavors-of-concurrency-in-java-spring-i...
CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES by MICHAEL PLÖD https://www.innoq.com/de/talks/2016/05/caching-spring-best-practices/
BUILDING PROGRESSIVE WEB APPS WITH SPRING BOOT AND POLYMER by MATTI TAHVONEN https://github.com/vaadin-marcus/polymer-spring-boot
EXTENDING SPRING DATA by PETAR TAHCHIEV  
A LITE RX API FOR THE JVM by SÉBASTIEN DELEUZE AND STEPHANE MALDINI https://speakerdeck.com/sdeleuze/a-lite-rx-api-for-the-jvm
MODERN JAVA COMPONENT DESIGN WITH SPRING 4.3 by JUERGEN HOELLER https://speakerdeck.com/rigadevday/modern-java-component-design-with-spr...
SECURING RESTFUL SERVICES WITH SPRING HATEOAS AND HDIV by ROBERTO VELASCO  
DEVELOPING A GEOSPATIAL WEBSERVICE WITH KOTLIN AND SPRING BOOT by SÉBASTIEN DELEUZE https://spring.io/blog/2016/03/20/a-geospatial-messenger-with-kotlin-spr...
https://github.com/sdeleuze/geospatial-messenger
https://speakerdeck.com/sdeleuze/developing-a-geospatial-webservice-with...
JUNIT 5 – SHAPING THE FUTURE OF TESTING ON THE JVM by SAM BRANNEN http://www.slideshare.net/sbrannen/junit-5-from-lambda-to-alpha-and-beyond
GRPC 101 FOR SPRING DEVELOPERS by RAY TSANG  
SPRING DATA COUCHBASE: A COMING OF AGE by SIMON BASLE  
CLOUD NATIVE APPLICATIONS WITH SPRING CLOUD & NETFLIX OSS by SPENCER GIBB  

Vertical Tabs