文章目录
前言
提示:实现AOP的方式分为XML方式和注解(AspectJ)实现方式。
一、XML实现AOP方式
1.XML配置
代码如下(示例):
<?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 id="TmplController" class="org.example.aop.controller.IndexController"/>
<!-- 声明通知类 -->
<bean id="aspectBean" class="org.example.aop.config.AopAspect" />
<!-- AOP配置 -->
<aop:config>
<!-- 切入点 -->
<aop:pointcut id="pointcut" expression="execution(* org.example.aop.controller..*(..))"/>
<!--定义通知-->
<aop:aspect ref="aspectBean">
<aop:before method="beforeAspect" pointcut-ref="pointcut"/>
<aop:after-returning method="afterReturnAspect" pointcut-ref="pointcut" />
<aop:after method="afterAspect" pointcut-ref="pointcut" />
<aop:after-throwing method="afterThrowing" pointcut-ref="pointcut" />
</aop:aspect>
</aop:config>
</beans>
2.切面通知类的实现
代码如下(示例):
package org.example.aop.config;
import org.aopalliance.intercept.Joinpoint;
/**
* @author mr.monster
* @version 1.0
* @Description
* @date 2021/5/3 23:02
*/
public class AopAspect {
//前置操作
public void beforeAspect(){
System.out.