Spring有两种方法实现AOP,分别是注解方式和配置文件方式
注解方式:首先将配置文件设置为扫描并添加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"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.example.spring_boot_demo02.controller"></context:component-scan>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<beans>
@Component //此处创建User对象由spring托管
public class User {//此处为被增强类
public void add(){
System.out.println("add.......");
}
}
@Component
@Aspect
public class UserPorxy{//此处为增强类
@Before("execution(* com.example.User.add())") //*号后面是需要增强的方法的路径
public void before(){
System.out.println("before......");
}
}
@Test
public void testAdd() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user", User.class);
user.add();
}