import org.codehaus.aspectwerkz.aspect.**;
public class LoggingAspect extends AbstractAdvice {
public void before(MethodInvocation mi) {
System.out.println("Before method: " + mi.getMethod().getName());
System.out.println("Arguments: " + Arrays.toString(mi.getArguments()));
}
public void after(MethodInvocation mi) {
System.out.println("After method: " + mi.getMethod().getName());
}
}
<aspectwerkz>
<aspect name="loggingAspect" class="com.example.LoggingAspect"/>
<weaver>
<includePackage>com.example.library.*</includePackage>
<includePointcut execution="public * *(..)"/>
<advice ref-name="loggingAspect"/>
</weaver>
</aspectwerkz>
import org.codehaus.aspectwerkz.aspect.**;
public class ExceptionHandlingAspect extends AbstractAdvice {
public void afterThrowing(MethodInvocation mi, Throwable t) {
System.out.println("Exception occurred in method: " + mi.getMethod().getName());
System.out.println("Exception message: " + t.getMessage());
}
}
<aspectwerkz>
<aspect name="exceptionHandlingAspect" class="com.example.ExceptionHandlingAspect"/>
<weaver>
<includePackage>com.example.library.*</includePackage>
<includePointcut execution="public * *(..)"/>
<advice ref-name="exceptionHandlingAspect"/>
</weaver>
</aspectwerkz>