1、首先配置pom.xml
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
2、输入Java方法
package cn.edu.hncj.service;
public class Calculation {
public void add(){
System.out.println("add()执行中......");
}
public void subtract(){
System.out.println("substract()执行中......");
}
public void multiply(){
System.out.println("multiply()执行中......");
}
public void divide(){
System.out.println("divide()执行中......");
}
}
3、配置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 https://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="service" class="cn.edu.hncj.service.Calculation"/>
<bean id="myaspect" class="cn.edu.hncj.proxy.Myaspect"/>
<aop:aspectj-autoproxy/>
</beans>
4、编写通知类
@Aspect
public class Myaspect {
@Before("execution(* *..Calculation.add(..))")
public void MyBefore(){
System.out.println("方法开始执行");
}
@AfterReturning("execution(* *..Calculation.divide(..))")
public void MyAfterReturning(){
System.out.println("方法执行完毕");
}
}
5、测试类
String config= "applicationContext.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(config);
Calculation service = (Calculation) context.getBean("service");
service.add();
service.subtract();
service.multiply();
service.divide();