




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SpringAOP专题目录 为什么需要AOPAOP思想定义-*Spring1.2实现AOP实例一. 记录: 为什么需要AOPAOP-面向切面-解耦-解的是业务之间的耦合在实现业务代码时,完成主要业务,而一些辅助或者公共业务,形成切面类,运行时在把主要和切面类中辅助业务结合在一起,这样可以让开发人员写主要业务不必分心考虑辅助业务;-让我们可以“专心做事”面向切面-合久必分,分久必合合-主要业务和辅助业务(公共业务耦合),让我们不能专心做事;分-解耦把主要业务单写一个类或方法;把公共业务再单写一个特殊类(切面);分久必合-主要业务类和辅助业务类在运行期间必须通过(代理模式)自动结合在一起;AOP思想定义-*在程序开发中分别编写业务逻辑代码和“切面”代码,运行时通过代理模块组装在一起,其中关系在xml文件配置,运行时实现完整业务完整业务包括-主要业务类,切面类,代理类,关系xml配置AOP中一些基本概念:切面(Aspect)-是一个抽象出来的公共业务功能模块的实现,一颗切入到任意的业务方法中,可以多次使用;例如:-用户登陆的功能,异常处理,日志输出通知(Advice)-是在某个连接点(JoinPoint)所采用处理逻辑,即切面功能的实际实现;Advice类型包括-Before,After,Around,Throw4种;目标对象(Target)-被通知的对象,在AOP中,目标对象可以专心的实现自身的业务逻辑,通知(Advice)的功能可以在程序运行期间自动引入;代理(Auto Proxy)-是在目标对象中使用通知后创建新的对象,这个对象既拥有目标对象的全部功能,而且还拥有通知(Advice)提供的附加功能;目标有接口的-JDK动态代理目标没有接口的-CGLIB代理连接点(JoinPoint)-指切面组件在目标对象上作用的位置;切入点(PointCut)-是连接点的集合。采用正则表达式来指定;前置Advice-就是在主要业务方法执行之前实现切面功能;后置Advice-就是在主要业务方法执行之后实现切面功能;拦截Advice-就是在主要业务方法执行之时实现切面功能;异常Advice-就是在主要业务方法执行异常时实现切面功能;Spring1.2实现AOP实例主要业务Bean编码如下:package bean;public class Shoppings private String name;public String getName() return name;public void setName(String name) = name;/welcome连接点JoinPointpublic void doShopping()/*String ff=d;Integer t=Integer.valueOf(ff);*/System.out.println(this.getName()+buy xiaodiao);/joinPointpublic void doEat()System.out.println(getName()+|eat);/joinPointpublic void doSleep()System.out.println(getName()+|GoodNight);/bye的连接点切面功能代码如下:package aop;import java.lang.reflect.Method;import org.springframework.aop.MethodBeforeAdvice;/* * 方法执行之前通知(方法前置通知) * author Administrator * */public class Welcome implements MethodBeforeAdvicepublic void before(Method arg0, Object arg1, Object arg2)throws Throwable System.out.println(Welcome);package aop;import java.lang.reflect.Method;import org.springframework.aop.AfterReturningAdvice;/* * 方法后置通知 * author Administrator * */public class Bye implements AfterReturningAdvice public void afterReturning(Object arg0, Method arg1, Object arg2,Object arg3) throws Throwable System.out.println(bye);/拦截通知package aop;import ercept.MethodInterceptor;import ercept.MethodInvocation;public class AroundAdvice implements MethodInterceptorpublic Object invoke(MethodInvocation shop) throws Throwable /添加别的业务System.out.println(hello world);/让doShopping方法对象运行Object doShopping=ceed();/添加别的业务return doShopping;/异常通知package aop;import org.springframework.aop.ThrowsAdvice;public class ExceptionAdvice implements ThrowsAdvice public void afterThrowing(Exception ex)System.out.println(出事了,出大事了);System.out.println(具体的错误信息如下:+ex.getMessage();aop.xml mike welcome bye inter ex 普通test类package test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import bean.Shoppings;public class UseAOPTest /* * 使用AOP时 * param args */public static void main(String args) ApplicationContext ctx=new FileSystemXmlApplicationContext(src/aop.xml);/通过“代理”对象获取Bean对象Shoppings shop=(Shoppings)ctx.getBean(shopProxy);shop.doShopping();shop.doEat();shop.doSleep();AdviceType -implements-method方法前置Advice-MethodBeforeAdvice-before()public void before(Method arg0,Object arg1,Object arg2)拦截Advice -MethodInterceptor-invoke()public Object invoke(MethodInvocation action)throws Throwable方法后置Advice-AfterReturningAdvice-afterReturning()public void afterReturning(Object arg0,Method arg1,Object arg2,Object args3) throws Throws ThrowableExceptionAdvice-ThrowAdvice-afterThrowing()public void afterThrowing(Exception ex)二需要打通的经脉: 四.总结: (第二天晚上要总结) 复习内容1 总结为什么需要AOPAOP-面向切面-解耦-解的是业务之间的耦合;在实现业务代码时,完成主要业务,而一些辅助或者公共业务,形成切面类,运行时再把主要业务和切面类中的辅助业务结合在一起,这样可以让开发人员写主要业务,不必分心考虑辅助业务;-让我们专心做事;面向切面-合久必分,分久必合合久必分-把主要业务与公共业务进行分离,解耦;分久必合-在运行期间主要业务和公共业务通过代理模式自动结合在一起;AOP思想定义-*在程序开发中分别编写业务逻辑代码和“切面”代码,运行时通过代理模块组装在一起,其中关系在xml文件配置,运行时实现完整的业务功能;完整的业务包括-主要业务类,公共业务类,代理类,关系xml配置AOP中一些基本概念:切面-Aspect 是一个抽象出来的公共业务功能模块的实现,可切入到任意的业务方法中,可以多次使用,例如,用户登陆功能,异常处理,日志输出等等通知Advice 是在某个连接点所采用处理逻辑,即切面功能的实际实现;目标对象Target 被通知的对象。在AOP中目标对象可以专心的实现自身的业务逻辑,通知Advice的功能可以在程序运行时自动引入;代理 Proxy-是在目标对象中使用通知后创建新的对象,这个对象爱那个既有目标对象的全部功能,而且拥有通知提供的附加功能;目标需要有接口实现的-JDK动态代理目标没有接口的-CGLIB动态代理连接点JionPoint 指切面组件在目标对象上作用的位置;切入点 PointCut 指连接点的集合,一般采用正则表达式来指定前置Advice-就是在主要业务方法执行前实现的切面功能;后置Advice-就是在主要业务方法执行后实现的切面功能;拦截Advice-就是在主要业务方法执行中实现的切面功能;异常Advice-就是在主要业务方法执行时出现异常时是实现的切面功能;在Spring1.2AOP中Advice -implements-methodBefore MethodBeforeAdvice before()public void before(Method arg0,Object arg1,Object arg2)Interceptor MethodInterceptor invoke()public Object invoke(MethodInvocation action) throws Throwableafter AfterReturningAdvice afterReturning()public void afterReturning(Object arg0,Met
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 曼达拉编织课件教研
- 上肢骨折护理模板
- 康复辅助用具的运用
- 脑出血护理查房省院
- 脑疝的护理问题
- 手术室护理纠纷
- 曲臂升降机安全使用课件
- 阑尾炎的护理
- 瑜伽社群互动App创新创业项目商业计划书
- 自动驾驶汽车地图定位部件创新创业项目商业计划书
- 高三一轮复习课件
- 驾驶员安全教育培训考试试卷含答案
- 2025广东河源市暨南大学附属第五医院急需紧缺人员招聘117人(第二批)笔试参考题库附答案解析
- 2025江苏航空产业集团有限责任公司人才招聘备考试题及答案解析
- 污水处理站运行记录台账范本
- 2025年消毒供应室业务学习考试试题(附答案)
- 校园基孔肯雅热防控措施课件
- 新安全生产法2025全文
- 2025年江西省高职单招文化统一考试真题及答案(网络版)
- WeeFIM儿童功能独立量表详解
- 安全标准化班组汇报课件
评论
0/150
提交评论