Wednesday, June 27, 2007

Aspect Oriented Programming (AOP)

Basic Concept:
Aspect means Feature.
Aspect Oriented Programming is related to common features of system which spans across all levels of
framework.
eg. -- Logging, Security, Transaction Management....
AOP is a tool for implementing all these crosscutting concerns.

To know what AOP is check the link :
http://www.aspectprogrammer.org/blogs/adrian/2004/05/the_ted_neward.html

I found this link very useful to get the basic idea about AOP.

Types of AOP: There are two distinct types of AOP, static and dynamic.
Static :AspectJ
dynamic: JoyAop

AOP implementation approaches :

1. Class-weaving-based : Class weaving is the process of integrating the concern implementations to form the
final system. Weaving can be performed at compile, load, and run time.
eg: AspectJ, JBpss AOP

2: Proxy based: Method invocations on an object can be intercepted to inject custom code.
AOP frameworks use JDK dynamic proxy, CGLIB proxy, or both.
eg: Spring AOP.

Note: JDk proxy can proxy interfaces while CGLIB proxy can proxy classes also


I am still very new to AOP. But the concept attracted me to know more about it.
So i'll find how much useful AOP is to implement.