
Foreword
This is a timely book, about a powerful and widely used technology that continues to grow in importance.
Since the first edition of AspectJ in Action, much has changed in AspectJ and the broader environment. This comprehensive update squarely addresses these changes.
Among the changes, three issues stand out: important new capabilities of AspectJ, increasing interest in dynamic languages in general and on the JVM, and the emergence of AspectJ as a key practical technology in mainstream enterprise Java.
AspectJ has matured greatly since the first edition. It now has comprehensive support for Java annotations, along with support for other language improvements such as generics, variable-length argument lists, and covariant return types. Annotations fit hand in glove with AOP, providing an ideal way of adding information about program structure and semantics for use by aspects. For example, one concise aspect might add consistent additional behavior to all executions of a method with a given annotation; another might cause a set of classes to be annotated with a particular annotation to direct an enterprise framework to add behavior at runtime. These language enhancements not only simplify the authoring of many aspects—they also make AspectJ an ideal match for modern enterprise Java programming models, and truly a new language.