close

YMNNALFT: A lightweight SQL data mapper with the JdbcTemplate

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

I think the first use I had for Spring, more than 15 years ago, was the JdbcTemplate, which eliminated the eye-watering and verbose work of using JDBC directly. As you might know, JDBC stands for “Just Don’t Break, Compiler!” and was designed to test the JVM limit of 65535 bytes of bytecode per method by providing an API that consistently requires more lines of code than that to do even basic things.

Read more

Spring Cloud 2020.0.1 (aka Ilford) Is Available

On behalf of the community, I am pleased to announce that Service Release 1 of the Spring Cloud 2020.0 Release Train (2020.0.1) is available today. The release can be found in Maven Central. You can check out the 2020.0 release notes for more information.

Notable Changes in the 2020.0.0 Release Train

This release was primarliy for bug fixes and dependency upgrades.

See this page for a list of Known Issues.

See the wiki for a list of all breaking changes in this release train.

See all of the included issues and pull requests at the Github project.

Read more

Spring Batch on Kubernetes: Efficient batch processing at scale

Introduction

Batch processing has been a challenging area of computer science since its inception in the early days of punch cards and magnetic tapes. Nowadays, the modern cloud computing era comes with a whole new set of challenges for how to develop and operate batch workload efficiently in a cloud environment. In this blog post, I introduce some of the challenges a batch developer or architect may face when designing and running batch applications at scale and show how Spring Batch, Spring Boot and Kubernetes can tremendously simplify this task.

Read more

YMNNALFT: The Spring *Utils Classes

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

We’ve all been there. There’s some everyday string-manipulation routine you want, so you extract it out into a separate abstract class and expose it as a static method. Then, there’s some factory method for building a java.util.Collection<T>, so you extract it out into a separate class and expose it as a static method. And eventually, you’ve got a whole collection of these things scoured about your codebase, and there’s little to no cohesion across them. After all, there’s just not that much to it, right? These are, essentially, only global functions, not really methods on stateful objects, per se.

Read more

This Week in Spring - January 26th, 2021

Hi, Spring fans! Welcome to another installment of This Week in Spring! As I type this I’m sitting on the amazing Tanzu Tuesday’s stream as a (guest) cohost with Tiffany Jernigan (@tiffanyfayj) learning about tips and tricks for working with Spring Boot and Kubernetes from the Spring team’s Oliver Hughes (@olliehughes82). If you missed it, then it - and all sorts of other content - is available for replays on our Tanzu Twitch.tv channel.

Now then, we’ve got a ton of good stuff to get to so let’s gooo…

Read more

What's New in Azure Spring Cloud after GA?

This post was written by our friend on the Azure Spring Cloud team, the amazing Kylie Liang (@liangkylie). I interviewed her for the Bootiful Podcast in April 2019, too! -Josh

2020 was a busy year for Azure Spring Cloud service. Microsoft and VMware co-announced Azure Spring Cloud General Availability (GA). We were excited to see how Azure Spring Cloud helped customers focus on code and let us take care of the underlying infrastructure management, operation, and maintenance. We continue to prioritize our work according to customers’ requests and feedback. For example, 7 more regions were enabled, and Azure Spring Cloud service is now available in 18 regions of Asia Pacific, Australia, Canada, China, Europe, India, Korea, United Arab Emirates, United Kingdom, and the United States. In this blog, I’ll share more about the newest features and enhancements since GA.

Read more

Spring Cloud Task 2.2.5 Release!

Spring Cloud Task 2.2.5 includes fixes for the following vulnerability:

CVE-2020-5428
In applications using Spring Cloud Task 2.2.4.RELEASE and below, may contain code that is vulnerable to SQL injection when exercising certain lookup queries in the TaskExplorer.

Users of Spring Cloud Task 2.2.4.RELEASE and below are encouraged to upgrade to Spring Cloud Task 2.2.5.RELEASE or 2.3.0.

Read more

Spring Cloud Data Flow 2.7.1 Released

Spring Cloud Data Flow team is pleased to announce the release of 2.7.1.

2.7.1 is a maintenance release fixing following issues:

  • UI bug fixes
  • Cloudfoundry Java Client has been updated to 4.13.0 fixing its memory leak
  • Using Spring Boot 2.3.7 and Cloud Hoxton.SR9
  • Spring Cloud Task updated to 2.2.5
  • Dataflow server contains fixes for docker, metrics and some endpoints
  • More detailed list can be found from GitHub 2.7.1

There is also releases for GitHub 2.6.5 and GitHub 2.5.4 with updated Spring Cloud Task.

Read more

YMNNALFT: Websockets

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

The open web has long extended hope to those who wanted a commodity platform to build and deploy services and applications at a large scale. We knew that the web could be compelling once a few things were improved. People could deliver rich clients that would be upgradeable with the refresh of a browser page. They could deliver data-and-multimedia-centric, immersive experiences. We knew that people could do these things if they only had the right paradigm for building web sites and services. But they say that you can’t appreciate the sweet without the sour, so the community embarked on a mission to find the absolute worst approach to building websites and services, and that, kids, is the story of how we got PHP.

Read more