文章目录
基于XML的AOP开发
快速入门
1.导入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.4</version>
</dependency>
2.创建目标接口和目标类
package com.taotao.aop;
/**
* create by 刘鸿涛
* 2022/4/24 16:27
*/
@SuppressWarnings({"all"})
public class Target implements TargetInterface {
@Override
public void save() {
System.out.println("正在存储数据....");
}
}
package com.taotao.aop;
/**
* create by 刘鸿涛
* 2022/4/24 16:19
*/
@SuppressWarnings({"all"})
public interface TargetInterface {
public void save();
}
3.创建切面类
package com.taotao.aop;
/**
* create by 刘鸿涛
* 2022/4/24 19:51
*/
@SuppressWarnings({"all"})
public class MyAspect {
public void before(){
System.out.println("前置增强....");
}
}
4/5.引入Spring.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="target" class="com.taotao.aop.Target"></bean>
<!-- 切面对象-->
<bean id="myAspect" class="com.taotao.aop.MyAspect"></bean>
<!-- 配置织入:告诉spring框架 哪些方法(切点)需要进行哪些增强(前置、后置...)-->
<aop:config>
<!-- 声明切面-->
<aop:aspect ref="myAspect">
<!-- 切面:切点 + 通知-->
<aop:before method="before" pointcut="execution(public void com.taotao.aop.Target.save())"></aop:before>
</aop:aspect>
</aop:config>
</beans>
6.使用Spring测试
导入Spring测试包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
新建测试类
package com.taotao;
import com.taotao.aop.Target;
import com.taotao.aop.TargetInterface;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* create by 刘鸿涛
* 2022/4/24 20:17
*/
@SuppressWarnings({"all"})
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class test {
@Autowired
private TargetInterface target;
@Test
public void test1(){
target.save();
}
}
运行测试error
Junit版本需要更高
更改配置文件xml版本即可,不再演示
成功测试1
成功测试2
注释掉spring织入