多平台统一管理软件接口,如何实现多平台统一管理软件接口
209
2022-08-28
Spring中自定义拦截器的使用
1、创建自定义拦截器类(UserTokenInterceptor)并实现HandlerInterceptor 接口,再重写方法,代码如下:
public class UserTokenInterceptor implements HandlerInterceptor {
/**
* @description 访问Controller之前执行
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("进入拦截器啦、、");
return true; // true即可放行,false则不放行
}
/**
* @description 请求访问Controller之后,渲染视图之前
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
/**
* @description 请求访问Controller之后,渲染视图之后
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
2、配置Web拦截器(WebMvcConfig)并实现Spring的WebMvcConfigurer接口
在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐)
复写addInkhCryterceptors方法,添加自己的拦截器
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册拦截器
registry.addInterceptor(getUserTokenInterceptor()).addPathPatterns("/index/session");
// 一定要加
WebMvcConfigurer.super.addInterceptors(registry);
}
// @Bean
public UserTokenInterceptor getUserTokenInterceptor() {
return new UserTokenInterceptor();
}
}
3、编写测试Controller
@RestController
@RequestMapping("/index")
public class IndexController {
@Deprecated
@GetMapping("/session")
public Object getSession(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("name", "lequal");
session.setMaxInactiveInterval(3600);
String name = (String) session.getAttribute("name");
System.out.println("获取的名字是:" + name);
return name;
}
}
4、访问URL地址
如果preHandle方法中return false的话http://浏览器访问是看不到返回的内容的,因为被拦截住了,就相当于卡在那里了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~