Performance has always been one of the top priorities of the Spring Engineering team, and we are continually monitoring and responding to changes and to feedback. Some fairly intense and precise work has been done recently (in the last 2-3 years) and this article is here to help you to find the results of that work and to learn how to measure and improve performance in your own applications. The headline is that Spring Boot 2.1 and Spring 5.1 have some quite nice optimizations for startup time and heap usage. Here’s a graph made by measuring startup time for heap constrained apps:
The Spring Blog
Hi Spring fans! In this installment of Spring Tips we look at how to use Spring to work with infrastructure on the Google Cloud Platform (GCP)
speaker: Josh Long
Hi Spring fans and welcome to another installment of This Week in Spring! This week I’ve been in Seattle, WA and now I’m off to Toronto, Canada for the epic SpringOne Tour Toronto edition, the last SpringOne Tour for the year, too! (Can you believe we’re now less than 22 days from 2019? Time sure flies when you’re having fun!)
- Spring Tips is back! And what a season have we planned for you! Last week we introduced the first new video, this one looking at the Spring support for Microsoft Azure. As always, you can see the whole playlist at the Spring Tips YouTube Playlist and you should check back on this very blog every Wednesday for the next few months for new installments.
- Spring Data Moore M1 released
- Spring REST Docs 2.0.3.RELEASE
- Spring REST Docs 1.2.6.RELEASE
- RabbitMQ Best Practices
- Reactive Programming and Relational Databases
- Spring IO Platform Cairo-SR6
- Spring Tools 4.0.2 released
- I liked this StackOverflow question and the subsequent answer from JUnit 5 and Spring Test Framework lead Sam Brannen on how to get the effect of
@IfProfileValuein a JUnit 5-based Spring application test
- This new change to OpenZipkin supporting correlation of events in the Java Flight Recorder looks very interesting, wouldn’t you say? Any “thumbs up” are appreciated!
- Speaking of Zipkin, it just passed a big milestone: the 10,000th person to star Zipkin on Github!
- Check out this cool feature that makes your Spring Cloud Gateway filters aware of things like path variables
- This looks like it could be an interesting video on Spring transaction management
- Baeldung has a nice post on debugging Reactive Streams in Spring 5
- Knative momentum continues, hits another adoption milestone
- Want to learn more about testing Spring applications? Check out my vJUG talk from a few months ago
- The first commerically supported tracing tool to support Zipkin-formatted data with zero changes, natively, has just been announced: Codecentric’s Instana
- Pivotal have a nice whitepaper on supersonic application development and delivery with Spring Boot and Pivotal Cloud Foundry
- Want to use RabbitMQ in a reactive context - and why wouldn’t you? Now you can! Reactor RabbitMQ 1.0.0 GA is released!
- Not stricly related to Spring, but interesting nonetheless: a non-exhaustive but interesting list of JDBC Driver Connection URL strings
- Auth0 have a nice Spring WebFlux tutorial
- Check out, and feedback, on the new Spring Data Kotlin extension!
- Pivotal announces new serverless framework - Pivotal Function Service
- Demystifying Tracking Event Processors in Axon Framework
- Speaking of Axon, here’s a nice (albeit slightly older) Italian-language post on CQRS with Spring and Axon, or CQRS con Spring e Axon
- The design process is an iterative one. “The most deadly thing in software is the concept.. that you are going to specify what you are going to do, and then do it.” - that from a 1968 NATO Software Engineering Conference!
- This Stackoverflow question, “Why Java takes much more RAM than
-Xmx?”, is well worth a read.
- Spring Tools 4.0.2 released, grab the latest
- This project, demonstrating Spring Boot 2, GraphQL, Angular and more, might be helpful if that’s a usecase you have
- Again, not strictly speaking related to Spring, but this is interesting. It’s a look at Java startup time from Java 8 through Java 11
- JaVers 5.0.0 has been released. This major release makes JaVers fully compatible with Spring Boot 2.1 and Spring Framework 5.1. JaVers is a framework to support auditing objects.
- Grails 3.3.9 released with GORM 6.1.11, Spring Boot 1.5.18, Spring 4.3.21.RELEASE
On behalf of the Spring Data team, I’m pleased to announce the availability of the first milestone of the Moore release train.
Notable changes include:
- Support for Streamable wrappers as query method return types.
- Additional Kotlin extensions like
- A Kotlin query DSL for MongoDB (special thanks to Tjeu Kayim)
- Gemfire & Apache Geode upgrades.
- Spatial type support for Neo4j.
- Elasticsearch REST and (initial) reactive client support.
- Support for Redis Streams.
- …and tons of new stuff for Spring Data JDBC.
It’s my pleasure to announce that Spring REST Docs 2.0.3.RELEASE is available from Maven Central, JCenter, and our release repository. My thanks to everyone who contributed to this release by reporting bugs and opening pull requests.
This maintenance release includes a small number of fixes and documentation improvements. It is a recommend upgrade for all Spring REST Docs 2.x users.
It’s my pleasure to announce that Spring REST Docs 1.2.6.RELEASE is available from Maven Central, JCenter, and our release repository. My thanks to everyone who contributed to this release by reporting bugs and opening pull requests.
This maintenance release includes a handful of bug fixes and documentation improvements. It is a recommend upgrade for all Spring REST Docs 1.x users.
Imperative code eats threads at the pace of incoming requests while Software is eating the world. This post discusses the assumptions for reactive programming on the JVM and what this means for integrations – in particular, relational databases.
The motivation to come up with a post is the constant increase in reactive programming adoption while some major building blocks are not yet available – in particular, the question: What about relational databases?
There are a lot of answers about what Reactive Programming is and how this compares to Reactive Systems. I see Reactive Programming as a programming model that facilitates scalability and stability by creating event-driven non-blocking functional pipelines that react to availability and processability of resources. Deferred execution, concurrency and asynchronicity are only a consequence of the underlying programming model.
This maintenance release upgrades the versions of a number of the projects in the Platform:
- Reactor Bismuth-SR14
- Spring AMQP 2.0.10
- Spring Boot 2.0.7
- Spring Cloud Connectors 2.0.4
- Spring Data Kay-SR12
- Spring Framework 5.0.11
- Spring Integration 5.0.10
- Spring Kafka 2.1.11
- Spring Security 5.0.10
- Spring Session Apple-SR7
The versions of a number of third-party dependencies have also been updated.
Dear Spring Community,
I am happy to announce the 4.0.2 release of the Spring Tools 4 for Eclipse, Visual Studio Code, and Atom.
Highlights from this release include:
- (Spring Boot) CTRL-CLICK navigation from application.properties and application.yml to Java
- (Spring Boot) Improvements to ‘Goto Symbol’ and ‘Live Hover’ for functional style WebFlux request mappings
- (Spring Boot) Support for Spring Boot log groups in properties and yaml editor
- (Spring Boot) Various bug fixes
- (Eclipse) Boot launch config editor ‘override properties’ now uses full-featured embedded properties editor
Hi Spring fans! In this installment of Spring Tips we look at how to use Spring to work with infrastructure on Microsoft Azure
speaker: Josh Long