Primero es necesario crear un directorio donde alojar la clase Java a interceptar por AspectJ:
$> mkdir AspectJExample
$> cd AspectJExample
Ahora debera crear la clase Example1.java con el siguiente contenido:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHal-yQWKsnJQs9wHVqQikuLFZHJ0ZpDxyAS7wDTybvhaqDQW35LGq2JqeZEPGrsmPOzJ0jI-C75mDUtev1qd95J7wj0ml87C10WeKxw_bEetZfX23W4xA196sd3NMjb1JMbq-HItAIg/s400/aspectj_example001.png)
Cree ahora un archivo con el nombre Example1Aspect.aj para el aspecto que interceptara la clase anterior:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUGCDFuNpvWGR3rx0Uqk6qUfJEYwWT1T-UMGInuN3il8-yJmcbplq9P3cSQw9FioSzZbV1r1JBSUte-huPy05rqPEO0BcuNK3R8GrCb7V5kvSzQ-NgpqxIlIDPKLGq1WHorfdjzSjlRQE/s400/aspectj_example002.PNG)
$> ajc Example1Aspect.aj Example1.java
El resultado podria ser:
[error] classpath error: unable to find org.aspectj.lang.JoinPoint (check that aspectjrt.jar is in your classpath)
Por lo que se debera agregar al classpath utilizado por el compilador de aspectos el jar indicado:
$> ajc -cp /aspectj1.5/lib/aspectjrt.jar -d C:\Dev\Workspace\AspectsTest\bin -log build.log -outjar example1.jar Example1Aspect.aj Example1.java
Los parametros que recibe el compilador de aspectos son:
-log [nombre_archivo] : Escribe en el archivo especificado el detalle de las clases interceptadas
-outjar [nombre_archivo] : Genera un archivo .jar que contiene las clases compiladas
Podra observar que las clases fueron construidas:
Example1.class
Example1Aspect.class
El contenido de cada una de estas clases es:
$> javap src\business\Example1
Compiled from "Example1.java"
public class business.Example1 extends java.lang.Object{
public business.Example1();
public static void main(java.lang.String[]);
public void example1();
}
$> javap src\aspects\Example1Aspect
Compiled from "Example1Aspect.aj"
public class aspects.Example1Aspect extends java.lang.Object{
public static final aspects.Example1Aspect ajc$perSingletonInstance;
static {};
public aspects.Example1Aspect();
public void ajc$before$aspects_Example1Aspect$1$88a63b48();
public static aspects.Example1Aspect aspectOf();
public static boolean hasAspect();
}
Finalmente ejecute la clase Example1
Vinculos: