admin 管理员组

文章数量: 887021


2024年2月23日发(作者:java入门零基础书)

java切面注解 参数

(实用版)

目录

切面注解概述

2.切面注解的分类

3.常用切面注解参数介绍

4.切面注解参数的使用示例

5.总结

正文

切面注解概述

在 Java 开发中,切面注解(AspectJ)是一种面向切面编程(AOP)的技术,用于将横切关注点(cross-cutting concerns)与业务逻辑分离,从而提高代码的重用性和可维护性。通过使用切面注解,开发者可以在不修改原有业务代码的情况下,对代码进行横向抽离和插入特定功能,例如日志、事务管理、安全等。

2.切面注解的分类

切面注解主要分为以下几类:

- 通知(Advice):在目标方法执行前、后或异常时执行的代码块。

- 切入点(Pointcut):用于定义通知应用的位置,通常是某个类的方法或某个类的所有方法。

- 引入(Introduction):用于为类或方法添加新的行为或属性。

- 目标(Target):通知作用的目标对象。

- 返回值(Returning):用于修改方法的返回值。

第 1 页 共 4 页

- 投射(Projection):用于创建方法的代理对象。

- 拦截器(Interceptor):用于拦截某个类的所有方法。

3.常用切面注解参数介绍

在实际应用中,开发者会遇到各种不同的切面注解,这里介绍几个常用的切面注解及其参数:

- @Before:在目标方法执行前执行的通知。参数包括:pointcut(切入点表达式)、returning(返回值)、throws(抛出异常)、name(方法名称)、method(方法描述)。

- @After:在目标方法执行后执行的通知。参数包括:pointcut(切入点表达式)、returning(返回值)、throws(抛出异常)、name(方法名称)、method(方法描述)。

- @AfterReturning:在目标方法正常返回后执行的通知。参数包括:pointcut(切入点表达式)、returning(返回值)、throws(抛出异常)、name(方法名称)、method(方法描述)。

- @AfterThrowing:在目标方法抛出异常后执行的通知。参数包括:pointcut(切入点表达式)、returning(返回值)、throws(抛出异常)、name(方法名称)、method(方法描述)。

- @Around:环绕在目标方法周围的通知,可以修改目标方法的执行流程。参数包括:pointcut(切入点表达式)、returning(返回值)、throws(抛出异常)、name(方法名称)、method(方法描述)。

- @Pointcut:定义切入点表达式,用于匹配目标类或方法。参数包括:expression(表达式)、name(方法名称)、method(方法描述)。

4.切面注解参数的使用示例

以下是一个使用@Before 和@After 注解的示例:

```java

第 2 页 共 4 页

import int;

import ;

import ;

import ;

@Aspect

public class LogAspect {

@Before("execution(* e.*.*(..))")

public void logBefore(JoinPoint joinPoint) {

n("Before method: " +

nature().getName());

}

@After("execution(* e.*.*(..))")

public void logAfter(JoinPoint joinPoint) {

n("After method: " +

nature().getName());

}

}

```

在这个示例中,我们使用@Before 和@After 注解分别定义了在目标方法执行前后的日志记录方法。切入点表达式"execution(*

e.*.*(..))"表示匹配 e 包下的所有方法。

5.总结

第 3 页 共 4 页

切面注解是 AOP 编程中重要的一部分,通过使用切面注解,开发者可以更加灵活地实现横切关注点的重用和插入。

第 4 页 共 4 页


本文标签: 方法 执行 注解