后置通知


AuditAspect.java
java
package com.hk.eshop.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
public class AuditAspect {
public void audit(JoinPoint joinPoint,String returnValue)
{
Object[] args = joinPoint.getArgs();
Signature sig = joinPoint.getSignature();
System.out.println("触发方法......"+sig.getName());
System.out.println("方法审计开始......");
for(int i=1;i<=args.length;i++)
System.out.println("第"+i+"个参数="+args[i-1]);
System.out.println("方法审计结束......");
System.out.println("切入点表达式......"+joinPoint.toString());
System.out.println("目标方法返回值......"+returnValue);
}
}
UserMng.java
java
package com.hk.eshop.aop;
import com.hk.eshop.java.IUserMng;
public class UserMng{
public String save(String id, String name) {
System.out.println("save() id="+id+",name="+name);
return "save() id="+id+",name="+name;
}
public String find(String id) {
System.out.println("find() id="+id);
return "find() id="+id;
}
}
异常通知




异常切面代码
java
package com.hk.eshop.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
public class AuditOrgAspect {
public void audit(JoinPoint joinPoint,Throwable throwValue)
{
Object[] args = joinPoint.getArgs();
Signature sig = joinPoint.getSignature();
System.out.println("触发方法......"+sig.getName());
System.out.println("方法审计开始......");
for(int i=1;i<=args.length;i++)
System.out.println("第"+i+"个参数="+args[i-1]);
System.out.println("方法审计结束......");
System.out.println("切入点表达式......"+joinPoint.toString());
System.out.println("目标方法抛出异常......"+throwValue);
}
}
package com.hk.eshop.aop;
public class OrgExistException extends Exception{
public OrgExistException(String msg)
{
super(msg);
}
}
package com.hk.eshop.aop;
public class OrgNotFoundException extends Exception{
public OrgNotFoundException(String msg)
{
super(msg);
}
}
package com.hk.eshop.aop;
public class OrgMng {
public String save(String id, String name) throws OrgExistException{
if(id.equals("root"))
throw new OrgExistException("Root Org exists...");
System.out.println("save() id="+id+",name="+name);
return "save() id="+id+",name="+name;
}
public String find(String id) throws OrgNotFoundException{
if(id.equals("root"))
throw new OrgNotFoundException("Root Org no found...");
System.out.println("find() id="+id);
return "find() id="+id;
}
}
package com.hk.eshop.aop;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main( String[] args )
{
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserMng umng = (UserMng)ctx.getBean("userMng");
umng.save("1","Java");
umng.find("2");
System.out.println("############################################");
try {
OrgMng omng = (OrgMng) ctx.getBean("orgMng");
omng.save("root", "Java");
omng.find("root");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}