Spring - AOP之传统手动代理
发布日期:2021-06-30 23:47:16 浏览次数:2 分类:技术文章

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

一、AOP之传统手动代理——不带切入点的切面

package com.imooc.aop.demo3;public interface StudentDao {        public void find();    public void save();    public void update();    public void delete();}
package com.imooc.aop.demo3;public class StudentDaoImpl implements  StudentDao {    public void find() {        System.out.println("学生查询...");    }    public void save() {        System.out.println("学生保存...");    }    public void update() {        System.out.println("学生修改...");    }    public void delete() {        System.out.println("学生删除...");    }}
package com.imooc.aop.demo3;import org.springframework.aop.MethodBeforeAdvice;import java.lang.reflect.Method;public class MyBeforeAdvice implements MethodBeforeAdvice {    public void before(Method method, Object[] args, Object target) throws Throwable {        System.out.println("前置增强======================");    }}
package com.imooc.aop.demo3;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("classpath:applicationContext.xml")public class SpringDemo3 {    // @Resource(name="studentDao")    @Resource(name="studentDaoProxy")    private StudentDao studentDao;    @Test    public void demo1(){        studentDao.find();        studentDao.save();        studentDao.update();        studentDao.delete();    }}
运行结果:前置增强======================学生查询...前置增强======================学生保存...前置增强======================学生修改...前置增强======================学生删除...

 

二、AOP之传统手动代理——带切入点的切面

package com.imooc.aop.demo4;public class CustomerDao {        public void find(){        System.out.println("查询客户...");    }    public void save(){        System.out.println("保存客户...");    }    public void update(){        System.out.println("修改客户...");    }    public void delete(){        System.out.println("删除客户...");    }}
package com.imooc.aop.demo4;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;public class MyAroundAdvice implements MethodInterceptor {    public Object invoke(MethodInvocation invocation) throws Throwable {        System.out.println("环绕前增强===================");        Object obj = invocation.proceed();        System.out.println("环绕后增强===================");        return obj;    }}
运行结果:查询客户...环绕前增强===================保存客户...环绕后增强===================修改客户...环绕前增强===================删除客户...环绕后增强===================

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

上一篇:Maven - 报错篇
下一篇:Spring - AOP之底层实现(动态代理 JDK VS CGLIB)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月03日 05时09分17秒