一、基本概念:

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的实现

结果

相关文章:

  • 2021-06-30
  • 2021-11-29
  • 2021-11-10
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2021-08-23
猜你喜欢
  • 2021-07-06
  • 2021-04-01
  • 2021-12-15
  • 2022-12-23
  • 2020-01-11
  • 2021-06-02
相关资源
相似解决方案