AspectJ in Action: Practical Aspect-Oriented Programming
This book, which has been labeled as the most useful guide to AOP/AspectJ, explains the AOP methodology and the AspectJ language. This book shows modularizing system-wide concerns such as logging, policy enforcement, resource pooling, caching, thread-safety, authentication and authorization, transaction processing, and business rule by synergistically combining AspectJ with technologies such as log4j, JAAS, JTA, JDBC, Swing, and Jess.
A software system is the realization of a set of concerns. One of the central premises of object-oriented programming is that each concern should be implemented as a separate module. However, there are certain system-wide concerns, such as logging, security, performance, and so forth, that often need to be addressed in many, if not all of the modules. Consequently, the code to handle these system-wide concerns may be mixed in with the core logic of a huge number of modules, resulting in lower productivity, poor quality, and systems that are hard to evolve. Aspect-oriented programming (AOP) overcomes these problems by modularizing the system-wide concerns.
AspectJ enables AOP programming in Java by adding a few new language constructs. By using Java as the base language and creating a final system that is compatible with Java byte code specification, AspectJ passes on all the benefits of Java. The use of Java as the base language also makes AspectJ a relatively easy language to learn.
The book is divided into three parts. The first part introduces AOP and AspectJ and will be helpful to developers wanting to learn or advance their knowledge of AspectJ. The second and third parts present examples of everyday situations in which you can use simple and easy AspectJ solutions to implement common system requirements such as logging, policy enforcement, resource pooling, business rules, thread-safety, authentication and authorization, as well as transaction management.What's inside:
- In-depth coverage of AOP and AspectJ
- Design patterns and idioms
- Solutions to real-world problems
- Much reusable code content