基于Spring的AspectJ对AOP的实现

一、基本概念:

AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。

切入点表达式(用于指定切入点):execution(),里面包含:访问权限、返回值类型、权限定性类名(接口名)、方法名、抛出异常、参数列表。其中返回值类型、方法名必须要有。

二、环境搭建:

1、导包:

  • Spring与AspectJ整合的Jar包

  • AspectJ的核心Jar包

  • AOP联盟的Jar包

  • Spring对AOP实现J的ar包

  • 以及Spring基础包

2、为配置文件添加约束:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd">

<!-- bean definitions here -->

三、基于注解的AspectJ:

首先在类名前添加@Aspect标签,告诉系统这个类是个切面类。

基于Spring的AspectJ对AOP的实现

切面注解

1、前置通知:

基于Spring的AspectJ对AOP的实现

前置通知

基于Spring的AspectJ对AOP的实现

任何通知都可以JoinPoint获取连接点参数。

2、后置通知:

基于Spring的AspectJ对AOP的实现

基于Spring的AspectJ对AOP的实现

后置通知可以获取执行结果,但不能该结果。

3、环绕通知:

基于Spring的AspectJ对AOP的实现

4、异常通知:

基于Spring的AspectJ对AOP的实现

基于Spring的AspectJ对AOP的实现

如果是自定义异常对象,我们将对象名把Exception替换就行,可以有多个存在。

5、最终通知:

最终通知就是无论有无异常都会执行。

基于Spring的AspectJ对AOP的实现

6、定义切入点:

定义切入点是为了解决代码冗余问题。

基于Spring的AspectJ对AOP的实现

7、配置文件:

基于Spring的AspectJ对AOP的实现

8、测试类:

基于Spring的AspectJ对AOP的实现

9、执行结果:

基于Spring的AspectJ对AOP的实现


四、基于XML的AspectJ:

其他不变,我们只将切面类的全部注解删掉。

基于Spring的AspectJ对AOP的实现

配置

基于Spring的AspectJ对AOP的实现

结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值