Spring AOP(XML后置+异常通知)

后置通知


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();
        }
    }
}
相关推荐
CoderYanger7 分钟前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
北冥有鱼被烹8 分钟前
perftest 之 ib_write_bw --use-null-mr 参数详解:用 NULL MR 做 RDMA 带宽测试
java
2601_9638702111 分钟前
基于SSM的特产代购系统
java·前端
paopaokaka_luck13 分钟前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
牧瀬クリスだ19 分钟前
YAML配置详解:SpringBoot实战指南
java·spring·yml
Su57320 分钟前
RuoYi + RAGFlow 搭建私有化知识库完整集成实践(二)
java
wechatbot88826 分钟前
极客互动企业微信 SCRM 自动运营平台效果实测
java·微信·企业微信·rpa
需要82630 分钟前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
事圆则缓1 小时前
Java 转 Kotlin 的 Android 迁移路线
java
计算机毕设定制辅导-无忧学长1 小时前
《基于Vue的流浪动物救助中心管理系统的设计与实现》
java·vue.js·spring boot·流浪动物救助中心管理系统