Spring Application Services
Exercise: Booking Application
-
Create a Postgres database
booking
-
Implement a transactional travel service that allows customers to make travel bookings consisting of a flight and a hotel booking
- Flights and hotels are booked separately by the booking service
- If one booking fails, the whole travel booking is canceled
-
The booking attempt and possible failures are logged using the logging service e.g.
Booking travel to London for Bob
and Error: Hotels in London booked out
- Run the
TravelIT
integration test to test the service
- Set the following logging levels to observe the transaction management to
DEBUG
logging.level.org.springframework.transaction.interceptor.TransactionInterceptor
logging.level.org.springframework.orm.jpa.JpaTransactionManager
- Implement an asynchronous travel service that allows customers to book travels by sending a message (e.g.
London:Bob
) to a booking queue
- Run the
AsyncTravelIT
integration test to test the service
- Observe the different behavior depending on whether the listener method is transactional or not
Template
Solution