Skip to main content

4 posts tagged with "Best Practices"

Software development best practices and guidelines

View All Tags

Lazy JDBC Connections in Spring Boot 4.1 (Performance Win)

· 7 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

Every time a @Transactional method runs in your Spring Boot application, Spring grabs a JDBC connection from the pool. Immediately. Before your code even executes. Before it knows whether you'll actually touch the database. That connection sits there, reserved for you, doing absolutely nothing — while some other thread might be blocked waiting for a free connection. Your Hibernate second-level cache just returned the result from memory? Doesn't matter. Connection was already checked out. That's the equivalent of renting a car to walk across the street.

Spring Boot 4.1 fixes this with first-class support for lazy JDBC connections. One property. Massive performance win.

In this post we'll look at:

  • The problem with eager connections — why Spring grabs a connection before you need one
  • What LazyConnectionDataSourceProxy does — the mechanism behind lazy fetching
  • Spring Boot 4.1's auto-configuration — enabling it with a single property
  • Before vs after — what you had to do manually (and why nobody bothered)
  • Real-world scenarios where this shines — cache hits, conditional logic, and read/write routing

A Practical Guide to Java Records

· 9 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

Java records, introduced in Java 16 (JEP 395), finally let you delete Lombok. You know, that library you added to avoid writing 50+ lines of getters, then spent hours debugging @Data annotation conflicts and weird IDE plugin issues. One line. No plugins. No magic. Just the Java compiler doing what it should have done 25 years ago.

In this guide, you'll learn:

  • The problem records solve — why we needed them
  • Core syntax and features — compact constructors, immutability, and generated methods
  • Real-world patterns — DTOs, value objects, projections, and configuration
  • When records fit (and when they don't) — practical guidance for your codebase