springboot定义aop类

本文介绍了如何在SpringBoot中利用AOP(面向切面编程)进行业务增强,强调了AOP在业务逻辑外添加额外操作的作用,并非用于安全过滤。通过示例展示了创建Controller和切面的步骤,以及@Pointcut定义切入点的表达式用法。在调用first方法时,详细阐述了Before注解、业务方法以及 Around 注解下pjp.proceed()的重要性及其执行顺序。

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.*.*(..))  是一个表达式,匹配业务方法的路径。第一个*表示方法的返回数据可以是任意类型。最后两个*表示所有类的所有方法。

@Aspect
@Component
public class LogAspect {
    @Pointcut("execution(public * com.cmic.attendance.web.*.*(..))")
    public void webPointCut(){}
 
    @Before("webPointCut()")
    publ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值