SSH企业培训之SpringAOP.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SSH企业培训之SpringAOP

Spring AOP 本章目标 AOP概述 AOP基本概念。 AOP实现方式。 逐步重构理解AOP。 日志/安全/异常处理/性能检测。 AOP概述 AOP: 面向方面编程 作为OO面向对象的补充,而不是替代。 AOP目标: 不改变现有代码的基础上,给系统动态增加横切关注点。 符合OCP开闭原则。 AOP基本概念 核心关注点:业务功能。 通知/切面/Advice/横切关注点: 对公共服务的模块化。 切入点:设置加入切面位置的表达式。 顾问Advisor:切面+切入点 AOP实现方式 JDK动态代理 JDK1.4后增加的内容。 只能对实现了接口的类生成代理,而不能针对类。 CGLIB字节码增强 是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。因为是继承,所以该类或方法最好不要声明成final ApectJ支持方法拦截与属性修改 Spring AOP只支持方法拦截。 spring对AOP的支持 如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 目标对象实现了接口,也可以强制使用CGLIB实现AOP 添加CGLIB库,SPRING_HOME/cglib/*.jar 在spring配置文件中加入 aop:aspectj-autoproxy proxy-target-class=true/ 如果目标对象没有实现接口,必须采用CGLIB库 spring会自动在JDK动态代理和CGLIB之间转换 常见横切关注点 日志 事务 安全 异常处理 性能检测 Advice MethodBeforeAdvice 前置通知 在业务方法执行之前执行 AfterReturningAdvice 后置通知 在业务方法执行之后执行 MethodInterceptor 环绕通知 在业务方法执行前后执行,甚至替代拦截的方法。 ThrowsAdvice 抛出异常时执行。 核心关注点 核心业务逻辑 public class AopDemo implements IAopDemo { public void doSomething() throws Exception { System.out.println(Process Buniess!!!); } } IAopDemo package com.lxt008.aop; public interface IAopDemo { public abstract void doSomething() throws Exception; } 客户端 ApplicationContext ctx=new ClassPathXmlApplicationContext(applicationContext.xml); IAopDemo demo=(IAopDemo)ctx.getBean(aopDemo); try{ demo.doSomething(); } catch(Exception e){ System.out.println(Found Exception); } MethodBeforeAdvice public class SecrityManager implements MethodBeforeAdvice{ public void before( Method m,Object[] args, Object target) { System.out.println(before Check!!!); } } applicationContext.xml 被代理目标: bean id=aopDemoTarget class=com.lxt008.aop.AopDemo/bean 安全通知 bean id=secrityAdvice class=com.lxt008.aop.SecrityManager/bean ProxyFactoryBean bean id=aopDemo class=org.springframework.aop.framework.ProxyFactoryBean property name=proxyInterfaces valuecom.lxt008.aop.IAopDemo/value /property property name=interceptorNames list value secrityAdvice /value /list /property property name=target ref=aopDemoTarget /property /bean Aft

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档