Ed McCormic Source on GitHub
All specs

Spring Boot and Java deep dives

Spring Boot Transactions

A small bank API where each @Transactional pitfall has a demo endpoint that shows the bug, and the same endpoint with ?fixed=true shows the fix.

View code on GitHub

Goals

  • Demonstrate rollback rules, propagation, and isolation
  • Demonstrate the classic bugs: self-invocation, checked exceptions, private methods, and deadlocks
  • Every demo opens fresh accounts, so demos can run in any order

Requirements

  • One demo endpoint per pitfall, with ?fixed=true for the fix
  • lockBoth deadlock fix that locks accounts in a consistent order
  • Optimistic locking demo
  • README with curl examples for every demo
  • 15 tests: one per bug, one per fix, plus the transfer API

Changelog

  • 2026-09-28: Built and pushed to GitHub