美文网首页SpringBoot
asp处理点击触发

asp处理点击触发

作者: 星钻首席小管家 | 来源:发表于2021-09-23 17:34 被阅读0次

1.新建注解@ClickAnn

/**
 * 请求明细接口时点击数+1
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ClickAnn {

    int mold() default 0;
}

2.处理逻辑

/**
 * @Description: 处理类
 * @Author sp
 * @Date 2021/9/23
 * @Version 1.0
 */
@Slf4j
@Aspect
@Component
public class ClickAspect {

    @Autowired
    private MisHomeService misHomeService;

    /**
     * 切点
     */
    @Pointcut("@annotation(com.common.annotation.ClickAnn)")
    public void initAspect() {
    }

    /**
     * 后置通知 用于拦截Controller层的明细操作
     *
     * @param joinPoint 切点
     */
    @After("initAspect()")
    public void doAfter(JoinPoint joinPoint) {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        try {
            if (joinPoint != null) {
                Long id = Long.valueOf(request.getParameter("id"));

                Signature signature = joinPoint.getSignature();
                MethodSignature msg = (MethodSignature) signature;
                Object target = joinPoint.getTarget();
                Method method = target.getClass().getMethod(msg.getName(), msg.getParameterTypes());
                ClickAnn annotation = method.getAnnotation(ClickAnn.class);
                int type = annotation.mold();
                if(type>0 && id>0){
                    misHomeService.clickOnResources(type,id);
                }
            }
        } catch (NoSuchMethodException e) {
            log.error("", e);
        }
    }

}

3.在controller层加注解使用

@GetMapping("/getById")
    @ClickAnn(mold = HomePageConstant.HOME_PAGE_BOOK)
    public JsonResult getById(@RequestParam(name = "id") Long id){
        long userId = CurrentUser.getUserId();
        return misBookService.getById(id,userId);
    }

相关文章

  • asp处理点击触发

    1.新建注解@ClickAnn 2.处理逻辑 3.在controller层加注解使用

  • 节流函数、防抖函数、函数重载

    1、节流函数 当持续触发事件时,保证隔间时间触发一次事件。 应用场景:处理点击事件,每隔delay时间再次调起点击...

  • Js事件和事件对象

    一、事件概述 事件三要素:事件源:触发(被)事件的元素事件类型:事件的触发方式(例如鼠标点击或键盘点击)事件处理程...

  • 26.1、同步/异步请求、混编、Ajax、封装Ajax

    同步、异步请求点击一个超链接、打开一个网站都属于同步请求JSP、ASP大多数情况属于混编模式,通过事件触发http...

  • 小程序多次点击最佳实践

    多次点击 小程序没有好的优化事件处理机制,导致重复点击会触发多次(当我们快速点击的时候会多次执行,比如点击加载更多...

  • JS 实现全屏效果

    点击按钮触发 requestFullscreen() 函数打开全屏 点击按钮触发 exitFullScreen()...

  • JS按键延迟处理

    原文请点击这里 页面触发按键后,在设定时长内重复按键将不进行处理,超出设定时长则触发JS业务,代码如下

  • 美团面经总结

    1.文件上传样式处理 使用label标签点击,触发file类型的input,input可直接display: no...

  • ASP.NET MVC 异常处理之最佳实现

    点击查看原文 异常处理是所有应用程序的的一个重要部分。ASP.NET 为处理异常提供了数种不同的方法。在这篇文章中...

  • 安卓Textview的点击事件和 SpannableString

    1.点击ClickableSpan不触发textview的点击事件2.点击textview,不触发Clickabl...

网友评论

    本文标题:asp处理点击触发

    本文链接:https://www.haomeiwen.com/subject/tiyogltx.html