当前位置: 首页 > news >正文

凡科建站模板最好用的wordpress主题

凡科建站模板,最好用的wordpress主题,三维角色动画制作工具,wordpress插件项目管理Springboot 拦截器 定义使用场景拦截器与过滤器的区别实现步骤全局拦截器的局限性全局拦截器VS局部拦截器局部拦截器自定义局部拦截器使用多个局部拦截器 定义 拦截器是Spring MVC框架中的一个重要组件#xff0c;它是一种AOP#xff08;面向切面编程#xff09;的实现方式它是一种AOP面向切面编程的实现方式专门拦截对控制层的请求。拦截器可以用于判断用户权限、拦截WebSocket请求等。 使用场景 Springboot拦截器具有多种作用主要包括请求预处理、请求日志记录、鉴权和权限控制、异常处理等。拦截器是一种特殊的组件可以在请求处理的过程中对请求和响应进行拦截和处理。在不修改原有代码的情况下实现对请求和响应的统一处理。 拦截器与过滤器的区别 拦截器是基于java的反射机制的而过滤器是基于函数的回调。拦截器不依赖于servlet容器而过滤器依赖于servlet容器。拦截器只对action请求起作用而过滤器则可以对几乎所有的请求起作用。拦截器可以访问action上下文、值、栈里面的对象而过滤器不可以。在action的生命周期中拦截器可以多次被调用而过滤器只能在容器初始化时被调用一次。拦截器可以获取IOC容器中的各个bean而过滤器不行这点很重要在拦截器里注入一个service可以调用业务逻辑。 实现步骤 实现HandlerInterceptor接口。将拦截器加入WebMvcConfigrer。 import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在请求处理之前进行拦截 System.out.println(Pre Handle method is Calling); return true; // 返回true表示继续向下执行返回false则中断执行。 } Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 在请求处理之后但在视图渲染之前进行拦截 System.out.println(Post Handle method is Calling); } Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 在整个请求结束之后进行拦截即在DispatcherServlet渲染了对应的视图之后执行。 System.out.println(Request and Response is completed); } }Configuration public class MyConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {// 添加全局拦截registry.addInterceptor(new MyInterceptor());}Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {} }全局拦截器的局限性 每个请求方法都会执行拦截器处理增加项目性能消耗 全局拦截器VS局部拦截器 局部拦截器 要求如下 执行特定方法才执行拦截器处理不同方法可执行不同拦截器处理单个方法可能要求多个业务类型拦截处理比如同时需要执行耗时统计和记录日志 那如何实现这样的局部拦截器呢很简单只要使用 Acri 框架处理即可,使用方式如下 引入依赖 dependencygroupIdcn.fntop/groupIdartifactIdacri-core/artifactIdversion1.0.0/version /dependency注册AcriIntercepter拦截器 Configuration public class AcriConfig implements WebMvcConfigurer, ApplicationContextAware {private ApplicationContext applicationContext;Overridepublic void addInterceptors(InterceptorRegistry registry) {// 全局拦截registry.addInterceptor(new AcriIntercepter(applicationContext));}Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {}Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext applicationContext;} }使用 Acri 注解 配置项默认值备注valuenull具体拦截处理器实现AcriProcessor并注入Spring容器beforefalse是否处理请求前执行doBefore方法duringfalse是否处理请求方法后执行doDuring方法afterfalse是否在返回响应后执行doAfter方法 Acri(value AcriStopWatchProcessor.class, before true, during true, after true) GetMapping(/login) public String login() {log.info(登录中);return 登录成功; }AcriStopWatchProcessor是框架自带的耗时统计拦截 before true //请求之前执行AcriStopWatchProcessor.doBefore()方法 自定义局部拦截器 实现implements AcriProcessor并注入Spring容器 Slf4j Component public class LogProcessor implements AcriProcessor {Overridepublic void doBefore(HttpServletRequest request, HttpServletResponse response, Object handler) {log.info(doBefore);}Overridepublic void doDuring(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {log.info(doDuring);}Overridepublic void doAfter(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {log.info(doAfter);} }使用 //表示请求前执行LogProcessor.doBefore方法请求后执行LogProcessor.doAfter()方法 //duringfalse表示不执行doDuring方法 Acri(value LogProcessor.class, before true, during false, after true) GetMapping(/login) public String login() {log.info(登录中);return 登录成功; } 效果 使用多个局部拦截器 Acries(more {Acri(value AcriStopWatchProcessor.class, before true, after true) , Acri(value LogProcessor.class, before true, after true)})详细文档参考Acri
http://www.dnsts.com.cn/news/203112.html

相关文章:

  • 手机网站html5凡科网怎么建网站
  • 北京手机网站建设费用接收外国电视卫星天线
  • 企业网站建设项目计划书成免费crm软件
  • 网站做百度排名教程网络推广计划方案
  • 博罗网站开发vi企业形象设计是什么
  • 西安seo网站推广优化网站开发配置
  • 装修网站建设优缺点sem分析是什么意思
  • 手机建网站教程中国做外贸网站
  • wap手机网站尺寸凡科免费网站建设
  • 网站 预算做网站换服务器怎么整
  • 吉安网站建设吉安番禺五屏网站建设
  • 哪些网站可以看一级a做爰片色系网站的
  • wordpress资源站模板爱站网功能
  • 建网站维护需要多少钱渝快办官网
  • 义乌市评建设职称网站做网站需要注意什么问题
  • php做网站有哪些优点网站开发设计内容
  • 北京搜索优化推广公司石家庄搜索引擎优化
  • 网站建设 价格低wordpress 经过天数
  • 用视频做网站背景彭水网站建设
  • 江西泰飞建设有限公司网站陕西优秀的企业门户网站建设
  • php网站登录系统怎么做做网站的前途怎么样
  • 南通集团网站建设移动端使用wordpress富文本编辑器
  • 网站建设有什么优势用ps做网站的临摹
  • 唐山网站建设互众动力php企业网站多少钱
  • 南通网站设计南京网燃网络科技有限公司
  • 免费看电视剧网站2020360度网站模板
  • 团购网站的交易流程网站域名空间地址
  • 建设专业网站价格东莞地铁线路图
  • 网站导航狼窝网站更新升级通知
  • 湖南省建设厅网站首页百度一下搜索引擎