Ċ package Ġexample Ċ Ċ import Ġio . mic ronaut . context . event . Application Event Publisher Ċ import Ġio . mic ronaut . transaction . annotation . Transactional EventListener Ċ import Ġjak arta . inject . Singleton Ċ import Ġjavax . transaction . Transactional Ċ Ċ @ Singleton Ċ open Ġclass ĠBook Manager ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbook Repository : ĠBook Repository , Ġprivate Ġval Ġevent Publisher : ĠApplication Event Publisher < New Book Event >) Ġ{ Ġ// Ġ< 1 > ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġopen Ġfun Ġsave Book ( title : ĠString , Ġpages : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook Ġ= ĠBook ( 0 , Ġtitle , Ġpages ) ĊĠĠĠĠĠĠĠ Ġbook Repository . save ( book ) ĊĠĠĠĠĠĠĠ Ġevent Publisher . publish Event ( New Book Event ( book )) Ġ// Ġ< 2 > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional EventListener ĊĠĠĠ Ġopen Ġfun Ġon New Book ( event : ĠNew Book Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" book Ġ= Ġ${ event . book }") Ġ// Ġ< 3 > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNew Book Event ( val Ġbook : ĠBook ) Ċ } Ċ