Stéphane Nicoll, working at Pivotal, using Spring since early as 2007 and creating Spring Boot with others since 2014 came over from Liege for the third talk at Aachens EuregJUG this year.
Stéphane had only two slides with him, the rest was live coding / demoing current and upcoming features of Spring Boot. I did take pictures, but neither Stéphane nor Stefan would be happy if upload them i guess, so the picture of the nice banner Stéphane prepared must be enough:
The idea of the talk was using http://start.spring.io to get a Spring project up and running as fast as possible. The starter is actually the only generation of stuff there is: It generates a Maven or Gradle project configured to use Spring Boot Parent and all starters you selected. Everything after involves no generation.
The starter generator is actually itself a restful Spring Boot application and accessible via CURL, Web and REST endpoints. The REST endpoints are actually used by IntelliJ IDE or STS IDE for nice GUIs generating projects as quick as possible.
What i didn’t know: They’ve also enabled the actuator endpoints, for example the metrics. Nice to see, how the site is being used.
Stéphane showed us how Spring Boot takes opinionated decisions about configuring stuff and how it stays out our your way if you want something else by using security as an example. One cannot stress this enough: Nothing is generated, it’s just configured and for me, thats one of the greatest thing about Spring Boot for since i’m using it as early as version 0.5.
Another important point was the fact that Spring Boot incorporates the Spring IO Platform, a curated list of dependencies that work well with each other. My experiences is that this works really great. Also, you can update or downgrade single libraries if you must by setting just a property in your build file. I wouldn’t recommend it for the Servlet API, but for example changing database drivers etc.
A nice wow effect are the new devtools in upcoming Spring Boot 1.3. They provide a simple but powerful class swapping mechanism and an implementation of the LiveReload protocol. Cannot wait to try them out (as it happens, I’ve upgrade a new application of mine to 1.3.M5 to test the new jOOQ integration). The DevTools will go out of the way if you’re using a JRebel license or Spring Loaded, which is great.
At the end of the nice tour de force, Stéphane pushed the app to Pivotals Cloud Foundry without any changes to the build or code.
If you never used Spring, the talk had a lot of things to show. If you’re long time Spring user, you would be impressed how easy it has become since 5 years ago to deploy a Spring application. And for me, a long time Spring user and early Spring Boot adopter, it was nice seeing a concise presentation of what is possible.
One thought i had during the talk: Spring Boot has a curated list of dependencies, an embedded servlet container (Tomcat, Jetty or Undertow), one of the best dependency injection frameworks their is (Spring Core), for me the best way to interact with JPA (Spring Data JPA) and an actually working MVC framework (Spring MVC): It would be more than justified to call this a Spring Application Server instead of Spring Boot, but I was assured, that’s not gonna happen anytime soon 😉
As with the last time, i didn’t count the visitors, but Stefans picture give you an impression:
And here are some links and tools discussed in the Q&A:
How to support the EuregJUG
If you like those talks in your area: Speak about it, blog about it. Invite colleagues. Maybe leaf an Euro or two in the tip jar, so that we can provide you with a nice experience (drinks etc.).
Come to the monthly meet up in Bar Elementa in Aachen, meet fellow developers.
Don’t be afraid: Even if we blog in English and announce the talks in English, most of us speak German. But we strive to be open for all people in the Euregio and also want foreign speakers to have a clue what’s going on here.
Here are some more information about the EuregJUG Maas-Rhine. The date of our next talk will be announced soon, Bert Jan Schrijver from the NLJUG will speak about “Swimming upstream in the container revolution: Containerless Continuous Delivery”