spring aop简单使用

本文介绍了SpringAOP在实际工作中较少被使用的现象,重点讲述了使用自定义注解进行方法拦截的案例,以及如何在工作中跳出舒适区,尝试将AOP应用于适合的业务场景。
摘要由CSDN通过智能技术生成

一、背景介绍

spring aop可以说是鼎鼎大名,但是说实话在实际工作中,用的其实并不多,别人不知道哈,反正我本人使用的次数说实话确实不多,纠其原因,我个人总结有以下两点

1、中途加入到项目组中,一些公共的业务逻辑已经由大神实现了

2、公共逻辑可以使用aop抽取,也可以不抽取,很多时候要不就是手懒不愿意抽取,要不就是压根想不起来使用aop(打完架了才想起来自己会武术)

二、简单使用案例

1、aop一般有两种拦截方式:

        1.1、配置方法拦截表达式

        1.2、自定义注解

2、以上两种方式,我倾向使用自定义注解的方式,原因嘛,那肯定是因为简单方便

3、代码示例

        3.1、自定义注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MessageAddUnread {

    String value() default "";

}

        3.2、创建aop

@Slf4j
@Aspect
@Component
public class MessageAop {
    @Pointcut("@annotation(com.gwm.peopleapp.community.annotation.MessageAddUnread)")
    public void addUnreadCut() {
}
    
    @After("addUnreadCut()")
    public void addUnread(JoinPoint joinPoint) {
        //获取目标方法
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        //获取目标方法的指定注解
        MessageAddUnread annotation = method.getAnnotation(MessageAddUnread.class);
        //获取注解的值
        String value = annotation.value();
        //获取目标方法的参数
        Object[] args = joinPoint.getArgs();
        //业务逻辑
  }
}

        3.3、使用的话,就很简单了,把注解加到需要拦截的方法上边,就OK了,稳稳当当,也不难

三、总结

网上经常流传着面试造火箭,工作拧螺丝,这句话我不敢苟同,工作中真的就不能造火箭吗?就算暂时不能造火箭,咋地也造个自行车啥的吧,关键是工作中遇到适合的业务时,我们愿不愿意走出熟悉的舒适圈,这很重要

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值