Guice's built-in support for Aspect-oriented programming can eliminate the need to repeatedly address the concerns of the database and Java Persistence API.
In a recent project we chose to use the EventBus in conjunction with Guice (a dependency injection library) and have had a lot of success with it. Specifically, objects in our syst