aop在业务方法的前后增加一些额外操作,不适合做安全过滤。想象你有一个夹层的汉堡包,中间的那层馅是业务方法,切面就是外面的2层面包,如果你不喜欢,你还可以把这2片面包拿掉,换成其他的食物,但他还是切面。我意思是切面是灵活的组件,随意放在业务方法的上面或者下面。
先写一个你们熟悉的controller (里面是业务方法)。
@RestController
public class MyWebController {
@RequestMapping("/first")
public Object first(String name,Integer age) {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@方法执行中ing..................");
return "first controller";
}
@RequestMapping("/doError")
public Object error() {
return 1 / 0;
}
}
再写一个切面,切入点是这个controller 。注解@Pointcut 定义切入点,就是作用在哪个业务方法。execution(public * com.cmic.attendance.web.*.*(..)) 是一个表达式,匹配业务方法的路径。第一个*表示方法的返回数据可以是任意类型。最后