Spring - AOP之AspectJ(XML)
发布日期:2021-06-30 23:47:23 浏览次数:2 分类:技术文章

本文共 2820 字,大约阅读时间需要 9 分钟。

package com.imooc.aspectJ.demo2;public interface CustomerDao {    public void save();    public String update();    public void delete();    public void findOne();    public void findAll();}
package com.imooc.aspectJ.demo2;public class CustomerDaoImpl implements CustomerDao {        public void save() {        System.out.println("保存客户...");    }    public String update() {        System.out.println("修改客户...");        return "spring";    }    public void delete() {        System.out.println("删除客户...");    }    public void findOne() {        System.out.println("查询一个客户...");//       int a = 1/ 0;    }    public void findAll() {        System.out.println("查询多个客户...");//        int b = 1/0;    }    }
package com.imooc.aspectJ.demo2;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;public class MyAspectXml {    // 前置通知    public void before(JoinPoint joinPoint){        System.out.println("XML方式的前置通知=============="+joinPoint);    }    // 后置通知    public void afterReturing(Object result){        System.out.println("XML方式的后置通知=============="+result);    }    // 环绕通知    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {        System.out.println("XML方式的环绕前通知==============");        Object obj = joinPoint.proceed();        System.out.println("XML方式的环绕后通知==============");        return obj;    }    // 异常抛出通知    public void afterThrowing(Throwable e){        System.out.println("XML方式的异常抛出通知============="+e.getMessage());    }    // 最终通知    public void after(){        System.out.println("XML方式的最终通知=================");    }}
package com.imooc.aspectJ.demo2;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(value="classpath:applicationContext2.xml")public class SpringDemo2 {    @Resource(name="customerDao")    private CustomerDao customerDao;    @Test    public void demo1(){        customerDao.save();        customerDao.update();        customerDao.delete();        customerDao.findOne();        customerDao.findAll();    }}
运行结果:XML方式的前置通知==============execution(void com.imooc.aspectJ.demo2.CustomerDao.save())保存客户...修改客户...XML方式的后置通知==============springXML方式的环绕前通知==============删除客户...XML方式的环绕后通知==============查询一个客户...查询多个客户...XML方式的最终通知=================

转载地址:https://lux-sun.blog.csdn.net/article/details/84337482 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JDBC Template - 入门篇
下一篇:Spring - AOP之AspectJ(注解)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月23日 15时16分36秒