This post originated from an RSS feed registered with Java Buzz
by dion.
Original Post: Dales "AspectJ in 2 paragraphs or less"
Feed Title: techno.blog(Dion)
Feed URL: http://feeds.feedburner.com/dion
Feed Description: blogging about life the universe and everything tech
Dale has put together AspectJ in Two Paragraphs.
In this instance, we are researching the use of aspects to assist debugging an existing Java application. It has several different sources of data access and no single place in which to place logging or parameter setting logic. As such, we have found it very labor intensive to reliably search out all of those points and cut-and-paste the same code to every one of them. AspectJ allows us to define "pointcuts", or semantically well-defined places, where the existing object-oriented code can be prepended to, appended to, or wrapped by, "advice". Pointcuts and advice will allow us to consistently log all (diversely implemented) database accesses using only one definition (the aspect file). The advised code will add an identifier to every SQL statement in the application before it is executed by DB2. The advised code will also set the necessary JDBC parameters on every connection to enable additional tracing information produced by DB2. Because there is no editing of the actual codebase, the chance of code drift and bug introductions can be minimized. The chance that side-effects will be introduced into the codebase is almost non-existent since aspects cannot be directly referenced by Java classes. Aspects exist outside of existing code and, if they do not contain application logic themselves, can be selectively added or omitted during the Ant build.
I expected to hear about some cool marriage of AspectJ and JINI :)
Of course, Adrian Colyer did a great job of explaining AOP without the buzzwords.