Chapter 21. Applying Application Scale Aspects


Application scale aspects affect significant areas of your software and are often characteristics of your software that affect many, even all, of the classes within your application. This chapter focuses on a set of these system scale cross-cutting concerns where AspectJ can be used to implement their characteristics better. The recipes in this chapter can be split into two categories: passive and active aspects.

Passive aspects are interceptors, or observers, or your application’s logic and do not affect or feedback into this logic in an obvious way. One of the key characteristics of a passive aspect is that it will usually only contain before( ) and after( ) advice, and if around( ) advice is used, it will still always call the proceed( ) method.

Active aspects affect the application to which they are applied in ways such as changing logical paths through the software. Although both aspects affect your application’s code when they are compiled and woven, active aspects will change the behavior of your application. Active aspects often contain around( ) advice that may not call the proceed( ) method and can override the triggering join point that was part of the original business logic.

This chapter begins by showing two passive application scale aspects that implement tracing and logging . Tracing and logging are almost the “Hello World” use cases for AspectJ, partially because they are good examples of flexible and ...

Get AspectJ Cookbook now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.