1 添加pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2 添加注解类
/**
* 自定义注解
* 用于验证调用权限
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface CheckSign {
}
3添加切面实现
/**
* CheckSign的实现
* 为了校验。。。。。。
*/
@Component
@Aspect
public class AspectImpl {
/**
* 拦截所有添加CheckSign注解的方法
*
* @param joinPoint
* @return
* @throws Throwable
*/
@Around("cut()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("1");
return joinPoint.proceed();
System.out.println("4");
}
@Before("cut()")
public void before() {
System.out.println("2");
}
@Pointcut("@annotation(piaoshen.openapi.web.Utils.CheckSign)")
private void cut() {
System.out.println("3");
}
@After("cut()")
public void after() {
System.out.println("5");
}
}
4 使用注解
/**
* 测试
*/
@Controller
@RequestMapping("/test")
public class TestController {
@Autowired
private TestBiz testBiz;
@RequestMapping(value = "hello", method = RequestMethod.GET)
@ResponseBody
@CheckSign
public String hello(){
return "Hello, world.";
}
@RequestMapping(value = "MD5", method = RequestMethod.GET)
}
5 执行hello方法之前之后就会执行标签实现里面的方法
6 其他
ProceedingJoinPoint 常用方法
https://www.cnblogs.com/lipings/p/7332029.html
ProceedingJoinPoint 可以获取你想要的所有数据 = = 嗯
————————————————————————————chenchen——————————————