AOP(Aspect Oriented Programming)意为“面向切面编程”。面向切面编程的目标就是分离关注点。
注:关于AOP的知识请查阅类别:Spring系列文章
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
定义切面
@Aspect @Component public class ControllerAop { }
注解详情
@Pointcut
注解
@Pointcut 注解,用来定义一个切面(切入点)。
@Before
注解
@Before 注解指定的方法在切面切入目标方法之前执行,可以做一些日志处理,做一些信息的统计,比如获取用户的请求 URL 以及用户的 IP 地址等等。
@After
注解
@After 注解指定的方法在切面切入目标方法之后执行,也可以做一些完成某方法之后的日志处理。
@AfterReturning
注解
@AfterReturning 注解和 @After 有些类似,区别在于 @AfterReturning 注解可以用来捕获切入方法执行完之后的返回值,对返回值进行业务逻辑上的增强处理。
@AfterThrowing
注解
@AfterThrowing 当被切方法执行过程中抛出异常时,会进入 @AfterThrowing 注解的方法中执行,在该方法中可以做一些异常的处理逻辑。
@Around
注解
@Around注解可以同时在所拦截方法的前后执行一段逻辑。