You must have heard the buzz around AOP in the last year. In this chapter I'll look at why AOP is important to the future of J2EE, and why it can be key to successful use of J2EE without EJB.
EJB owes much of its success to the deserved popularity of declarative middleware services such as container-managed transactions. AOP provides a powerful alternative way of providing such declarative enterprise services without most of the baggage of EJB. AOP service provision can work particularly well in conjunction with a lightweight container infrastructure, and along with source-level metadata attributes. Unlike EJB, AOP can also be used to deliver custom declarative services where appropriate, and to complement OOP for expressing program structure.
As we're primarily interested in a replacement for EJB, the subset of AOP we'll focus on concerns method interception. This is not all there is to AOP. However, it's all we need to solve some of the most pressing practical problems in J2EE. It's also a proven paradigm. Such limited use of AOP is not experimental, and won't have unpredictable effects on application structure.
I'll briefly introduce fundamental AOP concepts before moving onto the subset of AOP most important to J2EE, and how you can use it. Please refer to one of the books or articles listed in the "References" section near the end of this chapter for a detailed introduction to AOP.
I'll cover a number of AOP technologies, principally: ...