aop
文章平均质量分 82
caomiao2006
这个作者很懒,什么都没留下…
展开
-
Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解
首先我们来看一下官方文档所给我们的关于AOP的一些概念性词语的解释:切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。在Spring AOP中,切面可以使用基于模式)或者基于Aspect注解方式来实现。通俗点说就是我们加入的切面类(比如log类),可以这么理解。连接点(Joinpoint):在程序执行过程转载 2015-07-26 16:06:12 · 445 阅读 · 0 评论 -
AOP的实现机制
1 AOP各种的实现AOP就是面向切面编程,我们可以从几个层面来实现AOP。在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 类别机制原理优点缺点静态AOP静态织入在编译期,切面直接以字节码的形式编译到目转载 2016-05-02 17:59:41 · 2233 阅读 · 0 评论 -
spring 拦截器 MethodInterceptor 配置 config aop
最近项目里加上了用户权限,有些操作需要登录,有些操作不需要,之前做项目做权限,喜欢使用过滤器,但在此使用过滤器比较死板,如果用的话,就必须在配置文件里加上所有方法,而且 不好使用通配符。所以想了想,之前在人人用过的一种比较简单灵活的权限判断,是采用spring 的 methhodInterceptor拦截器完成的,并且是基于注解的。现在自己写了一套。大概是用法是这样的:转载 2016-05-02 17:46:16 · 4312 阅读 · 0 评论 -
Spring AOP原理及拦截器
原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。 AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Pers转载 2016-05-02 17:44:09 · 906 阅读 · 0 评论 -
Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)
第一种代理即Java的动态代理方式上一篇已经分析,在这里不再介绍,现在我们先来了解下GCLIB代理是什么?它又是怎样实现的?和Java动态代理有什么区别?cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。cglib封装了asm,可以在运行期动态生成新的class。cglib用于转载 2016-05-02 09:24:06 · 12173 阅读 · 0 评论 -
Spring中的AOP(七)(实际上应该是一)——AspectJ的基本使用
AOP(Aspect Orient Programming),也就是面向切面编程,作为面向对象编程的一种补充,当前已经成为一种比较成熟的编程思想,其实AOP问世的时间并不长,甚至在国内的翻译还不太统一(另有人翻译为“面向方面编程”)。AOP和OOP(Object Orient Programming,面向对象编程)互为补充,OOP将程序分解成各个层次的对象,而AOP则将程序运行过程分解成各个切面。转载 2016-04-30 18:26:49 · 4046 阅读 · 1 评论 -
Spring中的AOP(六)——基于XML配置文件方式的AOP
除了前面介绍的基于JDK1.5的注解方式来定义切面,切入点和增强处理外,Spring AOP也允许直接使用XML配置文件来管理它们。在JDK1.5之前,只能使用配置文件的方式来管理,在Spring2.X后提供了一个新的aop命名空间来定义切面、切入点和增强处理。 相比之下,使用XML配置文件方式有如下优点:如果没有使用JDK1.5以上版本,只能使用XML配置文件的转载 2016-04-30 17:41:29 · 4890 阅读 · 0 评论 -
Spring中的AOP(五)——定义切入点和切入点指示符
定义切入点 在前文(点击查看)中使用到的AdviceTest类中同一个切点(即* com.abc.service.*.advice*(..)匹配的连接点)却重复定义了多次,这显然不符合软件设计的原则,为了解决这个问题,AspectJ和Spring都提供了切入点的定义。所谓定义切入点,其实质就是为一个切入点表达式起一个名称,从而允许在多个增强处理中重用该名称。 Spr转载 2016-04-30 17:40:58 · 5567 阅读 · 0 评论 -
Spring中的AOP(四)——在Advice方法中获取目标方法的参数
获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点。JoinPoint里包含了如下几个常用的方法:Object[] getArgs:返回目标方法的参数Signature getSignature:返回目标方法的签名转载 2016-04-30 17:40:29 · 31913 阅读 · 4 评论 -
Spring中的AOP(三)——基于Annotation的配置方式(二)
使用After增强处理 Spring还提供了一个After增强处理,它与AfterReturning优点类似,但也有区别:AfterReturning增强处理只有在目标方法正确完成后才会被织入After增强处理不管目标方法如何结束(正确还是异常),它都会被织入 正是因为这个特点,因此After增强处理必须准备处理正常返回和异常返回转载 2016-04-30 17:39:47 · 1349 阅读 · 0 评论 -
Spring中的AOP(二)——基于Annotation的配置方式(一)
AspectJ允许使用注解用于定义切面、切入点和增强处理,而Spring框架则可以识别并根据这些注解来生成AOP代理。Spring只是使用了和AspectJ 5一样的注解,但并没有使用AspectJ的编译器或者织入器,底层依然使用SpringAOP来实现,依然是在运行时动态生成AOP代理,因此不需要增加额外的编译,也不需要AspectJ的织入器支持。而AspectJ采用编译时增强,所以Aspect转载 2016-04-30 17:39:12 · 1162 阅读 · 0 评论 -
Spring中的AOP(一)——AOP基本概念和Spring对AOP的支持
AOP的基本概念 AOP从运行的角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中的各个步骤,希望以更好的方式来组合业务逻辑的各个步骤。AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定切入点,而不与具体某个类耦合(即在不污染某个类的情况下,处理这个类相关的切点)。下面是一些AOP的一些术语: 切面(Aspect):业务流程运行的某个特定步转载 2016-04-30 17:38:15 · 1988 阅读 · 0 评论 -
Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了)
6.5 AspectJ切入点语法详解6.5.1 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点; within:用转载 2015-07-26 16:36:39 · 663 阅读 · 0 评论 -
java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为转载 2016-05-02 18:04:40 · 1064 阅读 · 0 评论