Aspect Oriented Programming
I'm not a Java developer, however I'm very interested in AOP, and I'm sure this tutorial it's going to provide me a lot of ideas about AOP.
AOP is presented as an evolution to OO and Component Based Programming, it's a kind of interception mechanism that allows you to define a kind of queries to select the types you want to intercept. During the interception you can act before, after or in the whole execution of a method. The typical things you can do with aspects are:
- Logging
- Transaction Management
- Tracing
- Performance Analysis
But the point I really loved is the ability to set design time rules to analyze your current design, for example, in a MVC pattern you could check that the View never talks directly with the DataBase.
If you want to see the presentations it's availbale here: https://newaspects.com/presentations/
And if you want to play with AOP from the .NET world here is an early version of AspectSharp: https://aspectsharp.sourceforge.net/
Have fun !!