Aspectj之一简介

1、Aspectj是什么正则表达式

  官方网站的的介绍是这样的:spring

 

  • a seamless aspect-oriented extension to the Javatm programming language(一种基于Java平台的面向切面编程的语言)
  • Java platform compatible(兼容Java平台,能够无缝扩展)
  • easy to learn and use(易学易用)

 

 2、Aspectj能作什么编程

        clean modularization of crosscutting concerns, such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols。性能优化

         大意是说:干净的模块化横切关注点(也就是说单纯,基本上无侵入),如错误检查和处理,同步,上下文敏感的行为,性能优化,监控和记录,调试支持,多目标的协议。框架

 

3、还有那些经常使用的Aop以及他们的区别less

  • Jboss Aop:我基本上没有用过,因此没有发言权
  • Spring Aop:Spring本身原生的Aop,只能用一个词来形容:难用。 你须要实现大量的接口,继承大量的类,因此spring aop一度被千夫所指。这于他的无侵入,低耦合彻底冲突。不过Spring对开源的优秀框架,组建向来是采用兼容,并入的态度。因此,后来的Spring 就提供了Aspectj支持,也就是咱们后来所说的基于纯POJO的Aop。

   区别:Spring Aop采用的动态织入,而Aspectj是静态织入。静态织入:指在编译时期就织入,即:编译出来的class文件,字节码就已经被织入了。动态织入又分静动两种,静则指织入过程只在第一次调用时执行;动则指根据代码动态运行的中间状态来决定如何操做,每次调用Target的时候都执行。有不清楚的同窗,能够本身补下基础的代理知识。模块化

 

 

4、Aop术语解释性能

   基本上每篇Aop的文章都必讲的内容,不过笔者所将可能与他们不一样,笔者不会照本宣科。优化

   pointcut: 是一个(组)基于正则表达式的表达式,有点绕,就是说他自己是一个表达式,可是他是基于正则语法的。一般一个pointcut,会选取程序中的某些咱们感兴趣的执行点,或者说是程序执行点的集合。网站

   joinPoint: 经过pointcut选取出来的集合中的具体的一个执行点,咱们就叫JoinPoint.

   Advice: 在选取出来的JoinPoint上要执行的操做、逻辑。关于5种类型,我很少说,不懂的同窗本身补基础。

   aspect: 就是咱们关注点的模块化。这个关注点可能会横切多个对象和模块,事务管理是横切关注点的很好的例子。它是一个抽象的概念,从软件的角度来讲是指在应用程序不一样模块中的某一个领域或方面。又pointcut 和  advice组成。

   Target:被aspectj横切的对象。咱们所说的joinPoint就是Target的某一行,如方法开始执行的地方、方法类调用某个其余方法的代码。

相关文章
相关标签/搜索