一. AOP与@AspectJ

       AOP 是 Aspect Oriented Programming 的缩写,意思是面向方面的编程。我们在系统开发中可以提取出很多共性的东西作为一个 Aspect,可以理解为在系统中,我们需要很多次重复实现的功能。比如计算某个方法运行了多少毫秒,判断用户是不是具有访问权限,用户是否已登录,数据的事务处理,日志记录等等。

AOP的术语

  • 连接点(Joinpoint)

            程序执行的某个特殊位置:比如类开始初始化前,类初始化后,某个方法调用前,调用后等。 连接点 可 以 理解为AOP向目标类织入代码的地方。

  • 切点(Pointcut)

            每一个类都有许多的连接点,所以AOP通过切点来定位特定的连接点。可以通过数据库查询的概念来理解切点和连接点的关系:连接点相当于数据库中的记录,而切点就是查询条件。切点和连接点不是一对一的关系,一个切点可以匹配多个连接点。

  • 增强(Advice)

            增强就是织入到目标类连接点上的一段代码。它既包含了添加到目标连接点上的一段执行逻辑,也包含了用于定位连接点的方位信息。

        AspectJ是语言级的AOP实现,它扩展了AOP的语法,能够在编辑提供横切代码的织入。@AspectJ是AspecJ1.5新增的功能,它通过JDK5.0的注解技术,允许开发者在POJO中定义切面。

二. 自定义注解

       因为@AspectJ是基于JDK5.0的注解技术实现,所以我们有必要了解一下注解相关的知识,并学习如何自定义一个注解。

       注解(Annotation)是代码的附属信息,它可以用来修饰类,属性,方法,同时它遵循一个基本原则,注解不能直接干扰程序代码的运行,无论是增加或者删除注解,代码都能正常运行。

(1)一个简单的注解类

     Java规定使用@interface修饰定义的注解类。一个注解类可以拥有多个成员,成员声明和接口方法声明类似。

package com.wbl.aop;
   2:  
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
   7:  
/**
 * Created by Lulala on 2015/7/15.
 */
//声明注解的保留期限
//声明可以使用该注解的目标类型
//定义注解
//声明注解成员
  15: }

相关文章:

  • 2021-05-31
  • 2021-12-04
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-06-01
  • 2022-12-23
猜你喜欢
  • 2022-03-04
  • 2021-08-04
  • 2022-12-23
  • 2021-07-16
相关资源
相似解决方案