1.声明式
(1)注解,使用Aspect的@Aspect
(2)实现HandlerInterceptor

1 /** 2 * 拦截请求 3 * 4 * @author Administrator 5 * 6 */ 7 @Component 8 public class RequestHandlerInterceptor implements HandlerInterceptor { 9 @Resource 10 private RedisUtil redisUtil; 11 12 @Override 13 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 14 throws Exception { 15 String address = request.getParameter("address"); 16 if (redisUtil.get(address) != null && StringUtils.isNotBlank(String.valueOf(address))) { 17 response.setCharacterEncoding("gbk"); 18 ResultObject ro = ResultObject.fail().add("result", "水肥机器正在执行中,该命令不能同步执行"); 19 PrintWriter pw = response.getWriter(); 20 pw.write(JSONObject.toJSONString(ro)); 21 return false; 22 } else { 23 System.out.println("下发地址---------------" + address); 24 } 25 26 return HandlerInterceptor.super.preHandle(request, response, handler); 27 } 28 29 @Override 30 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, 31 ModelAndView modelAndView) throws Exception { 32 // TODO Auto-generated method stub 33 HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); 34 } 35 36 @Override 37 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) 38 throws Exception { 39 // TODO Auto-generated method stub 40 HandlerInterceptor.super.afterCompletion(request, response, handler, ex); 41 } 42 43 }
添加拦截器,实现WebMvcConfigurer
/** * @author Administrator * */ @Configuration public class RequestConfigurerAdapter implements WebMvcConfigurer { @Autowired private RequestHandlerInterceptor requestHandlerInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { // TODO Auto-generated method stub WebMvcConfigurer.super.addInterceptors(registry); registry.addInterceptor(this.requestHandlerInterceptor).addPathPatterns("/**"); } }
(3)配置
使用aop空间中的相关标签