In an enterprise application, it's common to have several cross-cutting concerns that are common across different components. As a rule of thumb, this common code should be kept separate from the actual business logic and shouldn't be bound to the core business logic of the component.
We will now take a look at the interceptors, including what they are, how we can utilize them to deal with cross-cutting concerns, and how to bind and activate them. We will also look at how to intercept functions that contain business logic and how to use CDI-provided annotations for this.