close

This Week in Spring - November 17th, 2020

Hi, Spring fans! Can you believe it’s already November 17th, 2020!? We’re weeks away from Thanksgiving here in the US and then the end-of-year holidays. I, for one, can not believe it. You know what else is pretty wild? The first week of January will be ten years of writing This Week in Spring!

I’ve got a pretty busy appearance schedule between now and the end of the year though. I’d love to see you at any of these events.

  1. 2020-11-17 - Ireland Bash Talk - I'll be speaking _tonight_ (California, USA / PDT time)
  2. 2020-11-18 - JCConf keynote speaker - Rsocket Revolution
  3. 2020-11-18 - QCon Plus - I'll be doing a presentation and doing live Q&A
  4. 2020-11-19 - the Kansas City JUG
  5. 2020-11-22 - GDG Devfest Shanghai
  6. 2020-11-23 - JavaHispano JUG presentation
  7. 2020-12-03 - Knoxville JUG
  8. 2020-12-04 - I'll be speaking at the jLove conference, participating in both a talk and a panel
  9. 2020-12-07 - Join me, Spring Developer Advocate Josh Long for this 90 minute exploration of all things reactive and RSocket in Spring. This is ideally timed for folks in APJ, so sign up now!
  10. 2020-12-15 - I'll be speaking at the Warsaw, Poland JUG - Warszawa JUG. Check the website for more details as they become available
  11. 2020-12-23 - Join me on our VMWare Tanzu channel - I'll be doing a "Code" stream at noon PDT
Read more

Case Study: Elasticsearch sink

This article is part of a blog series that explores the newly redesigned Spring Cloud Stream applications based on Java Functions. In this post, we will look at the Elasticsearch sink that allows us to index records in Elasticsearch, and its corresponding Consumer function.

Here are all the previous parts of this blog series.

Read more

Spring Data 2020.0 - New and Noteworthy in Spring Data MongoDB 3.1

The Spring Data MongoDB 3.1 release is one of the modules that highly benefited from the recent changes in the Spring Data Commons module, by leveraging the infrastructure built there to bring reactive features like auditing and SpEL. The following snippet gives you an impression of what this means for declarative MongoDB queries using SpEL:

@Query("{ 'supervisor' : ?#{ hasRole('ROLE_ADMIN') " +
  "? new Document('$regex', '*') : principal.name } }")
Flux<Person> findAllFilteredByRole();

@EnableReactiveMongoAuditing uses the common infrastructure so you can keep track of changes easily.

Read more

Spring Boot 2.3.6 available now

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Boot 2.3.6 has been released and is now available from Maven Central.

This release includes 30 bug fixes, documentation improvements, and dependency upgrades. Thanks to all those who have contributed with issue reports and pull requests.

How can you help?

If you’re interested in helping out, check out the “ideal for contribution” tag in the issue repository. If you have general questions, please ask on stackoverflow.com using the spring-boot tag or chat with the community on Gitter.

Read more

Spring Boot 2.4.0 available now

On behalf of the Spring Boot team and everyone that has contributed, I am pleased to announce that Spring Boot 2.4.0 has been released and is available from Maven Central. 2.4.0 is the first generally available Spring Boot release that uses the new versioning scheme. Please note that the version is 2.4.0 rather than 2.4.0.RELEASE that you may have expected based on previous releases.

This release adds a significant number of new features and improvements. For full upgrade instructions and new and noteworthy features please see the release notes.

Read more

Spring Data 2020.0.1 released

On behalf of the team, I’m pleased to announce Spring Data service release 2020.0.1. This service release is built on top of Spring Framework 5.3.1 and Reactor 2020.0.1. It contains mostly dependency upgrades and fixes.

Spring Data 2020.0.1 ships 34 improvements and fixes.

This release will be picked up by the upcoming Spring Boot 2.4.0 release for your convenience.

To round things off, here are the links to the individual modules along with their documentation:

Read more

This Week in Spring - November 10th, 2020

Hi, Spring fans! Welcome to another installment of This Week in Spring! It’s November 10th, 2020, as I write this and I, for one, can not believe that we’re closer to 2021 than we are to 2019 at this point. That’s insane. Time has absolutely rocketed by in some senses and stood utterly still in others. Odd year, this one.

I hope you’re all doing well! I’m at the Reactive Summit today (virtually, of course). This afternoon I was on a wonderful panel with all sorts of folks from around the ecosystem. And soon, around 17:30 or so, if memory serves, I’ll be speaking about RSocket and its use in the Spring ecosystem.

Read more

Spring Data 2020.0 - New and Noteworthy in Spring Data JDBC 2.1

As part of the 2020.0.0 version of Spring Data, we released Spring Data JDBC 2.1. This article presents the four most interesting changes in this version.

Use @Value on Entity Constructor Arguments

In some cases, not all the data that goes into an entity comes from the ResultSet of a query. You now may provide an @Value annotation with a SPeL expression that is evaluated, and the result is passed as an argument upon construction of the entity.

Read more

New in Spring 5.3: Improved Cron Expressions

If you regularly listen to A Bootiful Podcast, you might have heard about the improvements we made to Spring Framework’s cron support. Cron expressions are mostly used in Spring applications through the @Scheduled annotation. In Spring 5.3, we introduced the CronExpression class, which represents — you guessed it — a cron expression.

CronExpression replaces CronSequenceGenerator, which is based on java.util.Calendar and which has several known issues that none of the Spring team members felt comfortable solving. Introducing a new type allowed us to use the superior java.time APIs, solve the outstanding issues, and (hopefully) introduce new features as well. While Spring generally prefers to maintain backward compatible, sometimes we do believe that starting from scratch is the best option.

Read more