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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月03日 05时09分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2017半年文章合集(建议收藏)
2019-05-01
简析 __init__、__new__、__call__ 方法
2019-05-01
程序员如何优雅地写公众号
2019-05-01
@classmethod与@staticmethod的区别
2019-05-01
只有1%的程序员搞懂过浮点数陷阱
2019-05-01
一个网络请求的历险之旅
2019-05-01
Google 为什么把几十亿行代码放在一个库
2019-05-01
Erlang 之父 Joe Armstrong 去世
2019-05-01
来不及了,世界读书日,送10本书
2019-05-01
速来,上期中奖名单
2019-05-01
一名 Google 工程师的大数据处理经验
2019-05-01
命令行神器 Click 快速上手
2019-05-01
30分钟学会pyecharts数据可视化
2019-05-01
从一个骗子身上学到的
2019-05-01
关于Python爬虫,这里有一条高效的学习路径
2019-05-01
Python学习指南,看这篇清晰多了!
2019-05-01
Oracle裁员,3点建议
2019-05-01
「忙」只是借口
2019-05-01
如果只有1小时学Python,看这篇就够了
2019-05-01
命名难,难于上青天
2019-05-01