Spring的AOP使用
我们在Spring框架中实现AOP功能主要是通过AspectJ实现的,AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。需要注意的是,AspectJ并不是Spring框架的一部分,它只是用于和Spring结合在一起共同完成有关AOP的操作而已。
AOP结合AspectJ的使用主要有两种方式:
- 基于XML配置的方式实现;
- 基于注解的方式实现;
基于XML配置的方式实现
1、引入AOP需要的相关jar包
在Spring框架的基本jar包的基础上,我们还需要引入AOP相关的jar包。
<!--AOP相关jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
2、配置XML文件
在基础约束的基础上还需要导入AOP的相关约束条件。
<?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-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>
3、通过相关实例进行AOP的使用
场景:在基础业务逻辑上增加某个功能的实现。例如,在书本相关操作的基础上添加日志操作。
- 实现类:
//基础类
public class Book {
//方法1:写方法
public void writeBook() {<