用到的注解
@Before 程序执行之前调用
@Pointcut
一.如何使用AOP(例如:登录授权)
1.添加依赖
<!--AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2. 在包下创建aspect(方面)文件夹
3. 创建相应的class文件
@Aspect
@Component
//将文件引入spring容器中
public class HttpAspect {
@Before("execution(public * com.pagedemo.Controller.UserController.userList(..))")
//加两点的用途是方法中所有的参数全都会被拦截
public void log(){
System.out.println("1111111111111111111111");
}
@After("execution(public * com.pagedemo.Controller.UserController.userList(..))")
public void after(){
System.out.println("22222222222222");
}
}
其中出现了重复代码:用@PointCut注解
改进后的
@Aspect
@Component
//将文件引入spring容器中
public class HttpAspect {
@Pointcut("execution(public * com.pagedemo.Controller.UserController.userList(..))")
public void log(){}
@Before("log()")
public void dobefore(){
System.out.println("11111111111111");
}
@After("log()")
public void doafter(){
System.out.println("22222222222222");
}
}