package org.zcs.springAop.aspect;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.zcs.springAop.model.Circle;@AspectpublicclassLoggingAspect{//@Before("execution( public String org.zcs.springAop.model.Circle.getName())")@Before("allCircleMethods()")publicvoidLoggingAdvice(JoinPoint joinPoint){}@AfterReturning(pointcut="args(name)", returning="returnString")publicvoidgetMethodsarguments(String name, String returnString){
System.out.println("A method that takes string argument be called . The Value is : "+ name +",The return String is :"+ returnString);}@AfterThrowing(pointcut="args(name)", throwing ="ex")publicvoidexceptionAdvice(String name, RuntimeException ex){
System.out.println("An execption has been thrown."+ ex);}@Pointcut("execution( public * get*())")publicvoidallGetters(){}@Pointcut("within(org.zcs.springAop.model.Circle)")publicvoidallCircleMethods(){}}