In this chapter, we're going to examine some design decisions that are important for building better applications. In these design decisions, the AOP plays a significant role because it provides smart solutions to common crosscutting problems.
We will look at the following AOP design solutions:
Concurrency with AOP
Transparent caching with AOP
Security with AOP
Designing and implementing an enterprise Java application means not only dealing with the application core business and architecture, but also with some typical enterprise requirements.
We have to define how the application manages concurrency so that the application is robust and does not suffer too badly from an increase in the number of requests. We have to define the caching strategies for the application because we don't want CPU- or data-intensive operations to be executed over and over.
We have to define roles and profiles, applying security policies and restricting access to application parts, because different...