《JavaEE框架技术》课件05Spring框架基础-AOP.ppt

上传人(卖家):momomo 文档编号:7652984 上传时间:2024-05-25 格式:PPT 页数:21 大小:652.50KB
下载 相关 举报
《JavaEE框架技术》课件05Spring框架基础-AOP.ppt_第1页
第1页 / 共21页
《JavaEE框架技术》课件05Spring框架基础-AOP.ppt_第2页
第2页 / 共21页
《JavaEE框架技术》课件05Spring框架基础-AOP.ppt_第3页
第3页 / 共21页
《JavaEE框架技术》课件05Spring框架基础-AOP.ppt_第4页
第4页 / 共21页
《JavaEE框架技术》课件05Spring框架基础-AOP.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、1第7章 Spring框架基础之AOP框架程序设计(Java)26.0学习目标Spring AOPSpring AOP介绍介绍1Spring AOPSpring AOP使用使用2软件工程系本科课件框架程序设计java37.1Spring AOPSpring AOP介绍介绍汇编语言C语言C+/java/C#面向机器编程面向过程编程面向对象编程面向切面编程语言的发展历史软件工程系本科课件框架程序设计java47.1Spring AOPSpring AOP介绍介绍o AOP:Aspect Oriented Programming,面向切面编程,可以说是OOP(Object Oriented Prog

2、ramming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构 AOP则利用一种称为“横切”的技术,剖开对象内部,并将影响了多个类的的公共行为封装到可重用模块,从而减少重复代码,降低耦合。软件工程系本科课件框架程序设计java57.1Spring AOPSpring AOP介绍介绍 StudentService ClassService CourseService记录日志记录日志记录日志记录日志权限服务事务安全缓存软件工程系本科课件框架程序设计java67.2Spring AOPSpring AOP使用使用o AOP术语:通知(Advice)连接点(Join

3、 point)切点(Poincut)切面(Aspect)织入(Weaving)引入(Introduction)大多数用于描述AOP功能的术语并不直观,为了理解AOP,我们必须了解这些术语。软件工程系本科课件框架程序设计java77.2Spring AOPSpring AOP使用使用o 用通俗的语言来描述AOP术语:切面包含通知和切点 通知定义了切面的作用以及何时使用。切点定义了切面在何处使用,定义切面使用范围 连接点是在应用执行过程中满足切点范围的具体的点 织入是把切面应用到目标对象 引入允许我们向现有的类添加新方法或属性。软件工程系本科课件框架程序设计java87.2Spring AOPSp

4、ring AOP使用使用 例子:猫抓老鼠续 我们可以分为猫和老鼠两类对象,猫拥有抓的方法,如下:/猫类public class cat/猫抓老鼠的方法pubic void catch(mouse m)/猫抓老鼠的业务逻辑代码./老鼠类 public class mouse软件工程系本科课件框架程序设计java97.2Spring AOPSpring AOP使用使用public class cat/猫抓老鼠的方法pubic void catch(mouse m)/猫抓老鼠的业务逻辑代码.切面包括通知和切点 通知指切面的作用和何时使用,这里是指记录日志,在调用方法前使用 切点指切面作用的范围,这里

5、指catch方法以及其他需要记录日志的所有方法,可以使用切点表达式来描述 连接点指在程序运行的时候具体的切入点此处定义切面,在执行方法时进行拦截记录日志软件工程系本科课件框架程序设计java107.2Spring AOPSpring AOP使用使用 下面演示猫抓老鼠并记录日志的代码:在使用AOP之前的代码如下:/老鼠类 public class Mouse private String name;/省略get/set方法/日志记录类 public class Logpublic void writeLog()System.out.println(日志信息:猫抓到了老鼠,时间:+new Date

6、().toLocaleString();软件工程系本科课件框架程序设计java117.2Spring AOPSpring AOP使用使用/猫类 public class Cat private String name;/省略get/set方法public void catchMouse(Mouse m,String loc)/记录日志的代码Log log=new Log();log.writeLog();/猫抓老鼠的业务逻辑代码System.out.println(name+猫抓到了老鼠+m.getName();软件工程系本科课件框架程序设计java127.2Spring AOPSpring

7、AOP使用使用/在spring配置文件中配置bean /代码中调用/初始化一个容器上下文ApplicationContext context=new ClassPathXmlApplicationContext(applicationContext.xml);/从context中获取beanCat cat=(Cat)context.getBean(cat);cat.setName(tom);Mouse mouse=(Mouse)context.getBean(mouse);mouse.setName(jerry);cat.catchMouse(mouse,观音桥);软件工程系本科课件框架程序设

8、计java137.2Spring AOPSpring AOP使用使用 上面的代码Cat类的catch方法中,既有业务逻辑代码,又有记录日志的公共服务代码,很不合理,下面使用Spring AOP将其分离 Cat类去除记录日志代码,修改如下:/猫类public class Cat private String name;/省略get/set方法public void catchMouse(Mouse m,String loc)/猫抓老鼠的业务逻辑代码System.out.println(name+猫抓到了老鼠+m.getName();软件工程系本科课件框架程序设计java147.2Spring A

9、OPSpring AOP使用使用 第一步:如果要使用AOP,需要引入spring的spring-aop-4.3.0.RELEASE.jar,还要引入第三方的一个jar包aspectjweaver.jar 第二步:修改Spring配置文件的头部(因为要用到aop标签)软件工程系本科课件框架程序设计java157.2Spring AOPSpring AOP使用使用 第三步:配置切面软件工程系本科课件框架程序设计java167.2Spring AOPSpring AOP使用使用 说明:1、定义通知类bean 2、通过aop:config标签配置所有的切面 3、通过aop:pointcut标签配置切点

10、,使用切点表达式来指定范围 execution(*domain.Cat.catchMouse(.)4、通过aop:aspect定义切面,指定引用的通知以及通知的类型和切点切入点是方法返回值匹配全类名匹配方法名匹配方法参数匹配软件工程系本科课件框架程序设计java177.2Spring AOPSpring AOP使用使用 说明:5、通知根据通知的时机区分有五种类型:前置通知,使用aop:before标签,在方法之前执行 后置通知,使用aop:after标签,在方法之后执行,无论方法内部是否抛出异常 后置返回通知,使用aop:after-returning标签,在方法之后执行并且方法内部不能抛出异

11、常 后置异常通知,使用aop:after-throwing标签,在方法内部抛出异常时执行 环绕通知,使用aop:around标签,在方法之前和之后都执行软件工程系本科课件框架程序设计java187.2Spring AOPSpring AOP使用使用 说明:6、前四种通知的方法里面我们可以通过JoinPoint参数获取连接点信息,比如参数信息等,方便进行处理 7、环绕通知的方法里我们通过ProceedingJoinPoint参数来获取连接点信息 第6条说明示例如下:软件工程系本科课件框架程序设计java197.2Spring AOPSpring AOP使用使用/日志记录类public class

12、 Logpublic void writeLog(JoinPoint point)/通过point.getTarget()获取切面织入的对象Cat cat=(Cat)point.getTarget();/通过point.getArgs()获取连接点的参数Object args=point.getArgs();Mouse m=(Mouse)args0;String loc=args1.toString();System.out.println(日志信息:+cat.getName()+猫在+loc+抓到老鼠+m.getName()+,时间:+new Date().toLocaleString()+

13、);软件工程系本科课件框架程序设计java20第第10次次作业作业 在项目中有一个service类,如下:public class UserService private String name;/省略get/set方法public void sayHello()System.out.println(hello,+name);软件工程系本科课件框架程序设计java21第第10次次作业作业 有一个Validate类,如下:public class Validate public void login()System.out.println(登陆成功);public void writeLog()System.out.println(登陆时间:+new Date().toLocaleString();现要求使用AOP编程,在UserService 执行sayHello方法之前执行Validate的login方法,在sayHello方法之后执行Validate的writeLog方法,要求给我检查并写实验报告册

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《JavaEE框架技术》课件05Spring框架基础-AOP.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|