Hi, Spring fans! Look, I know it's only been a month since we last spoke, but it feels like a decade! What a quantum leap forward this new Spring Native stuff is. Have you seen it? It supports converting Spring Boot applications into GraalVM native images. GraalVM native images are a great way to improve start up (take your application from 1 or 1.5 seconds down to 50 milliseconds (or, 0.050s)), and if that's what you care about, then you're well served here. To me, however, the most valuable implication of GraalVM native images is that the resulting binary takes much less memory at runtime. MUCH less. I've had applications that fit in 256MB of RAM take up 25MB of RAM after conversion. That's a 10x difference! And we're just getting started – there are further optimizations underway, and we'll be debuting those soon.
Spring Native isn't done. It's still experimental. It's still growing. There's work to be done, and not every application will work out of the box. But the list of supported workloads improves daily! The amazing Andy Clement and I presented on Spring Native and GraalVM at JRush last week. If you watch one thing this week, let it be that.
And then, once you're done with that, well of course there's a lot of other great stuff to get into this month so let's!
- A Bootiful Podcast: Shigeru Urushibara, President and CEO at UL Systems, Inc., and Japanese technology ecosystem legend. This is one of my favorite episodes of all time. Urushibara-san is a great technologist and an even better person.
- A neat Infoq article on Spring Native
- I like this German-language article on Spring Boot and container images called Container-Images: Abschied vom Dockerfile
- How to Debug Your Spring Native Applications
- I tried Spring Native for GraalVM and I like it! – YouTube
- I’ll be speaking at the Cloud Conf Day
- The video from our recent SpringOne Tour 2021 day 1 ensemble performance, #Booternetes, is now up! There's a lot here so make some coffee and enjoy!
- Testing the file upload API in Spring Boot
- Using Elasticsearch in Spring Boot
- A nice Japanese language blog on the just-announced Spring Native project
- Hi, Spring fans! In last week's installment of A Bootiful Podcast, I talked to fellow Java champion and legend Angie Jones
- An Azure Spring Cloud Update: Managed Virtual Network and Autoscale are now generally available in Azure Spring Cloud
- Bootiful Cassandra with DataStax's Patrick McFadin, Cedrick Lunven, and Spring's Josh Long
- Creating High Quality OAS Definitions with Springfox – Part 1: Security Definitions – 42Crunch
- DevOpsChat Articles – Kicking Spring Native's Tires
- Oracle finally released the R2DBC driver to Maven central! Get the bits while they're hot!
- Spring Boot cofounder and lead Phil Webb on Twitter: "A massive thank you to the readers of DZone that voted Spring Boot as their favorite software framework! It was an honor to collect the award on behalf of the team and contributors."
- Spring Batch 4.3.2 and 4.2.6 available now
- Spring Boot 2.4.4 available now
- Spring Tools 4.10.0 released
- Spring Boot 2.5.0-M3 available now
- Spring Cloud AWS 2.3 is now available
- Spring Data 2021.0.0-M5, 2020.0.6, and Neumann SR8 released
- Spring Integration 5.5 M3 & 5.4.5 Available
- Check out this appendix to the book Spring Quickly; there's a lot of good stuff in there!
- Announcing Spring Native Beta!. This is by far the most important bit to come out of the last week! There is SO MUCH good stuff to ponder here. Spring Native is a set of hints that help GraalVM's
native-image
facility turn your dynamic Java code into a lightning fast, super lightweight, machine architecture-specific binary that you'll definitely want to invite to your next Docker container party. Tons of stuff just works out of the box. Native compilation is even supported on the Spring Initializr – just addNative
to the selections! You can use@NativeHint
annotations to register certain classes for proxying, reflection, etc. Or, you can implementNativeConfiguration
to dynamically register things at compile time. Make sure that you add the.jar
containing theNativeConfiguration
class to theMETA-INF/services/
service loader entry for classes of typeNativeConfiguration
and then add that.jar
to thespring-aot
Maven plugin's classpath. You can easily build your native image and export a container using Spring Boot's buildpack support:mvn spring-boot:build-image
. You'll find tons of samples supporting its use in the repository, too! - Java 16 is here!. Finally,
instanceof
pattern matching and record types (record Customer(Integer id, String name) {}
) work out of the box in Java! Congrats to the Java team and, of course, you can expect good support for Java 16 in Spring Boot to land sooner rather than later. - A Bootiful Podcast: FF4J project creator and DataStax Astra SDK engineer Cedrick Lunven
- Apache Tomcat on Twitter: "Apache Tomcat 8.5.64 has been released. Downloads: https://t.co/gvowEu055P Changelog: https://t.co/J4TCalUgvU" / Twitter
- Deploy Spring Boot applications by leveraging enterprise best practices – Azure Spring Cloud Reference Architecture
- This isn't particularly related to Spring Boot, but, there's an interesting repository on GitHub –
ossu/computer-science
– that offers a path to a free self-taught education in Computer Science! - Graceful Shutdown of Spring Boot Applications in Kubernetes by Kaan Taş on the Trendyol Tech blog
- I was on the Devpod podcast and it was a lot of fun and you might enjoy it.
- Java Recognized as the Favorite Programming Language . Of course it was! It's double dope.
- Java in the Cloud Native World, featuring the Starbuxman (Josh Long) | Meetup
- A great thread from Microsoft's Julien Dubois on Twitter: "As Spring Native beta was released last Friday…
- KNative eventing with Spring and Apache Kafka
- Spring Framework 5.3.5 available now
- Tanzu Observability for Wavefront (formerly Wavefront) delivers scalable observability as a service where Spring developers can build analytics-driven dashboards based on multi-sourced data including metrics, traces, histograms, and span logs. The Spring
- The State of Undo panel in which I participated
- The first drop of the Oracle R2DBC driver!
- Deploy Spring Boot apps with enterprise best practices in the Azure Spring Cloud Reference Architecture. Start here
- In last week's installment of a A Bootiful Podcast, I talk Spring Cloud Gateway for Kubernetes lead Chris Sterling on API Gateways, Microservices, Spring Cloud and more
- Tanzu Observability for Wavefront (formerly Wavefront) delivers scalable observability as a service where Spring developers can build analytics-driven dashboards based on multi-sourced data including metrics, traces, histograms, and span logs. The Spring team has worked side-by-side with the Tanzu Observability team to make the process quick and seamless—but there's always room for improvement. You can provide feedback by participating in a user research effort going on right now and make your voice heard about how to make the Tanzu Observability experience with Spring better—choose a time good for you, click here.
- I really enjoyed this Second Conversation with Amazon's Werner Vogels from March 2021 in Communications of the ACM
- I loved this post by https://calendly.com/mgist1/spring-boot-wavefront?month=2021-03
- Kotlin and RSocket tutorial
- Check out this neat talk from Microsoft's Julien Dubois about running Spring in a serverless environment from DevNexus 2021
- Taboola has built a very interesting Spring Boot Actuator that helps you debug asynchronous code – taboola/async-profiler-actuator-endpoint
- The Baeldung blog has updated their article on Spring Boot Security autoconfiguration
- How to build an API to perform web scraping in Spring Boot
- Example of CockroachDB & Java Spring Boot Application Architecture
- Caching in Spring Boot with the Caffeine cache
- This looks interesing: Spring Boot password encrption with Jasypt
- Check out our very own Mark Heckler’s new book “Spring Boot Up and Running”!
- A Bootiful Podcast: Spring legend Greg Turnquist on Spring Data REST, HATEOAS, CI, and so much more.
- Check out this first new installment of Spring Tips in which I revisit Spring Cloud Gateway. This episode features a long, detailed look at all things Spring Cloud Gateway and features interviews with Spring Cloud cofounder and Spring Cloud Gateway creator Spencer Gibb and an interview with Spring Cloud Gateway for Kubernetes lead Chris Sterling.
- Congrats to Jacques Chester on his new book KNative in Action
- Custom annotations with Spring
- Deploying Spring Boot Application on Kubernetes
- Do I Make Myself Clear?
- I dig this Java Feature Spotlight looking at pattern matching
- Netflix Open Sources Their Domain Graph Service Framework: GraphQL for Spring Boot
- Spring Integration Zip 1.0.4 & CVE-2021-22114
- I love this video from RedMonk, What is a Distributed API Gateway? How to get started with Spring Cloud Gateway for Kubernetes