SpringBoot annotation development

step:

  1. write annotation class
  2. Set the interceptor to implement the HandlerInterceptor interface, rewrite the preHandle and afterCompletion methods, and process transactions before (after) the interception.
  3. Add interceptor in WebMvc configuration class

Annotation class:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// 设置运行时有效
@Retention(RetentionPolicy.RUNTIME)
// 设置方法上时有效
@Target(ElementType.METHOD)
public @interface AccessLimit {
    
    
    // 单位时间
    int second();

    // 最大请求次数
    int maxCount();

    // 是否需要登录
    boolean needLogin() default true;
}

interceptor


    /**
     * 在请求前处理
     *
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
    	// True表示不拦截、false表示拦截
        return true;
    }

Add interceptor in webmvc

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    
    
    
    @Autowired
    private AccessLimitInterceptor accessLimitInterceptor;

    /**
     * 添加拦截器
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        registry.addInterceptor(accessLimitInterceptor);
    }
}

Guess you like

Origin blog.csdn.net/weixin_43960044/article/details/124014462