AspectJ基于注解的实现

本文详细介绍了AspectJ中的AOP注解及其使用方法,包括@Before、@AfterReturning等核心注解,并提供了如何在Spring配置文件中启用AspectJ的支持。

基本注解

Advice的类型

@Before

@AfterReturning

@Around

@AfterThrowing

@After

表达式

execution(expression)

expression(<访问修饰符>?<返回类型><方法名(<参数>)<异常>)

execution(public * *(..)) 匹配所有的public方法

execution(* com.ywkj.*(..)) 匹配指定包下的所有方法

execution(* com.ywkj..*(..)) 匹配指定包下的所有的方法,包括子包下的

execution(* com.ywkj.InterfaceName+.*) 匹配实现特定接口所有类方法

execution(* save*(..)) 匹配所有以save开头的方法


使用

@Aspect

在applicationContext.xml中开启AspectJ的自动代理

<aop:aspectj-autoproxy/>

### 如何在 Eclipse 中配置和使用 AspectJ 进行基于注解的 AOP 开发 要在 Eclipse 中配置并使用 AspectJ 进行基于注解的 AOP 开发,可以按照以下说明操作: #### 1. 安装 AspectJ 插件 为了支持 AspectJ 功能,需要先安装 AspectJ Development Tools (AJDT) 插件。打开 Eclipse 并进入 `Help -> Install New Software` 菜单,在弹出窗口中的工作区 URL 输入框中输入官方更新站点地址(例如:https://download.eclipse.org/tools/ajdt/48/update),然后勾选 AJDT 相关插件完成安装[^2]。 #### 2. 创建 AspectJ 项目 创建一个新的 Java 项目,可以选择将其转换为 AspectJ 项目。右键点击已有的 Java 项目,选择 `Configure -> Convert to AspectJ Project` 来启用 AspectJ 支持。这一步会自动导入必要的 AspectJ 库文件[^3]。 #### 3. 添加依赖项 如果采用 Maven 或 Gradle 构建工具,则需手动引入 AspectJ 和 Spring AOP 的相关依赖。以下是 Maven 配置的一个例子: ```xml <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.9.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> ``` 对于非构建管理器的情况,下载 AspectJ JAR 文件并将它们添加至项目的 CLASSPATH 中。具体路径可参照之前提到的方法设置环境变量 ASPECTJ_HOME,并确保 bin 和 lib 子目录被正确加载。 #### 4. 编写切面 利用 @Aspect 注解读入 Bean 作为切面组件。下面展示了一个简单的日志记录示例: ```java import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; @Aspect @Component public class LoggingAspect { @Before("execution(* com.example.service.*.*(..))") public void logMethodCall() { System.out.println("Logging method call..."); } } ``` 上述代码片段展示了如何定义一个名为 LoggingAspect 的切面,其中包含前置增强逻辑用于捕获服务层方法调用事件[^1]。 #### 5. 启动应用验证效果 最后启动应用程序测试是否成功实现了预期的功能扩展行为。当触发匹配的服务接口动作,控制台应显示相应的日志输出信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值