I work on a web app that uses some Spring Application Event publishing and I was wondering what the advantages of it are? Why not just create a service call for everything that happens in the event handler’s onApplicationEvent, and then call that service in place of publishing the event?
I work on a web app that uses some Spring Application Event publishing and
Share
One of the advantages to using Spring’s event publishing (observer pattern – http://en.wikipedia.org/wiki/Observer_pattern) is that the components are loosely coupled – there is no direct coupling between the publisher and the subscriber. Sure, they both have a dependency on the Spring Event API, but not on each other. This makes it possible to extend the application by adding/removing subscribers without affecting other subscribers (assuming that your subscribers don’t depend on each other).
On the other hand, as you might have found, it can make debugging more tricky because it introduces a level of indirection between the source of an event and the overall outcome.
Yes, you can usually replace an event with a direct API call. Using Events are a good fit when: