Add core-events module: @EventListener, @TransactionalEventListener phases and async listeners on Boot 4.1

Thirteen captured transcripts: a listener is a blocking method call, ordering and chaining, SpEL conditions,
generic-event erasure, every transaction phase on commit and rollback, what an AFTER_COMMIT listener can
write, which exceptions reach the publisher, async listeners on platform and virtual threads, and the
annotations behind Spring Modulith's @ApplicationModuleListener.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Uu7q8vPeREyT4218EJPzz1
This commit is contained in:
Claude
2026-09-24 07:08:47 +00:00
parent c418589251
commit d6b76c57db
72 changed files with 1658 additions and 0 deletions
@@ -0,0 +1,18 @@
# Listener order, an event returned from a listener, and a listener that throws
--- all listeners succeed ---
earliest (@Order(-10), a different bean)
receipt (@Order(0)) returns a ReceiptIssued
onReceipt received ReceiptIssued[orderId=A-1]
first (@Order(1))
second (@Order(2))
unordered (no @Order)
--- the @Order(2) listener throws ---
earliest (@Order(-10), a different bean)
receipt (@Order(0)) returns a ReceiptIssued
onReceipt received ReceiptIssued[orderId=A-2]
first (@Order(1))
second (@Order(2))
publishEvent threw: IllegalStateException: second listener failed