Sometimes we wish to execute some logic just before and/or just after a method's main logic executes. For example, we might want to measure the execution time of a method to track down performance problems, or we might want to send a message to a log every time we enter and leave a method, to make it easier to track down bugs or exceptions.
The most common solution to these kind of problems is to add a little bit of code at the beginning and end of every method. This approach has several problems: the logic needs to be implemented several times, if we later wish to modify or remove the functionality, we need to modify several methods.
Aspect-oriented programming is a paradigm that solves the above problems by providing a way to implement the logic to be executed just before and/or just after a method's main logic in a separate class. EJB 3.0 introduced the ability to implement aspect oriented programming via interceptors.
Implementing...