spring学习视频笔录.docVIP

  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文档。上传文档
查看更多
spring学习视频笔录

spring06 代理模式 和Aop ---------------------------------------------- 1,静态代理 多写一个类,将公共的安全性检查切入到类的各个方法角落 2,动态代理 3,Aop术语: #横切性关注点,独立的问题 #横切性问题模块化,模块后之后,这个类叫Aspect 如:SecurityHandler # 横切性关注点的具体实现方法叫Advice,此时的Advice就对应了检查安全性方法 #Advice 分类 Before Advice after Advice.... #Advice应用到具体方法之前,给出一个范围,切入点,能应用到哪些Joinpoint上,Pointcut 如Pointcut(add*); #把Advice应用到目标对象的过程叫织入(Weave); #Joinpoint连接点,执行的点,spring只能是方法,只基于方法的连接点 #Target Object目标对象, Proxy 代理对象 Introduction 当类有方法时,可以动态加入方法 spring07 Aop实现 ----------------------------------- spring 对Aop的支持(采用Annotation的方法) 1,Spring 依赖库 * SPRING_HOME/dist/spring.jar * SPRING_HOME/lib/jakarta-ommons/commons-ogging.jar * SPRING_HOME/lib/log4j/log4j-1.2.14.jar //拥有强大的Aop功能jar包 * SPRING_HOME/lib/aspectj/*.jar #给出一个切面类,并告知Spring(可以用配置,可以用nnotation) Annotation 方式 @Aspect #定一个pointcut,切入点,Ponintcut的名称,此方法不能有返回值 和参数,这个方法只是一个标示,不做调用 Annotation 方式 @Pointcut(execution(* add*(..))); *不管有无返回值全匹配 ..不管有无参数 add*所有的Add方法 总的来讲就是所有的add方法不管有不参数,有无返回值的 Pointcut的内容是一个表达式,描述那些对象的哪些方法(订阅Joinpoint) #声明advice Annotation 方式 @before 定义Advice,标示在哪个切入点织入此方法 @Before(pointcut方法:上面是allAddMethod) spring 对Aop的支持(采用静态配置文件的方法) 给出一个切面类,一个目标类 aop:aspect 定义切面 aop:pointcut定义切入点 aop:before指定advice 方法 简单配置实例: aop:config aop:aspect id=security ref=securityHandler aop:pointcut id=allAddMethod expression=execution(* com.bjsxt.spring.UserManagerImpl.add*(..))/ aop:before method=checkSecurity pointcut-ref=allAddMethod/ /aop:aspect /aop:config #spring对Aop的支持 Aspect默认情况下不用实现接口,但对于目标对象,在默认情况下 必须实现接口,如没有实现接口,则需要引入CGLIB库 才可以 JoinPoint 我们可以通过advic中添加一个JoinPoint参数,这个值会 由Spring自动传入,在joinpoint中可以取得参数值,方法名等 1,如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现 AOP 2,如果目标对象实现了接口,我们也可以强制它使用CGLIB实现AOP 3,如果目标没有实现接口,必须采用CGLIB库,spring会在JDK动态代理和CGLIB之间转换 *如何使用CGLIB实现AOP? 步骤:*添加CGLIB库,SPRING_HOME/cglib/*.jar *在spring配置文件中加入 aop:aspectj-autoproxy proxy-target-class=true/ JDK动态代理和CGLIB字节码生成的区别? *JDK动态代理只能对实现了接口的类实现动态代理,

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档