Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

这篇主要说下拦截器的处理,这里就说下org.springframework.web.servlet 下的HandlerInterceptor

Java Interceptor

通过HandlerInterceptor类来看下代码

public interface HandlerInterceptor {
    boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;

    void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception;

    void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}

拦截器的处理就在,三个方法的意思一看就明白,也不做过多介绍

那么在代码中我们怎么来处理这些呢?

这里又要结合前面的章节 Filter 接口在处理了,对什么进行拦截,过滤出需要拦截的进行拦截HandlerInterceptor 接口方法,MyHandlerInterceptor extends HandlerInterceptor  实现过程略。。。

根据前面Filter章节获取将拦截器 如下:

public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Autowired
    private MyHandlerIntercepter myHandlerIntercepter;
@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myHandlerIntercepter).addPathPatterns("/**");
        super.addInterceptors(registry);
    }

    @Bean
    public FilterRegistrationBean registFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new OpenEntityManagerInViewFilter());
        registration.addUrlPatterns("/*");
        registration.setOrder(1);
        return registration;
    }

监控下所有的路由地址就行了,那么在.NetCore中怎么来处理的呢?这里就用.NetCore中的 Action 来说明

.NetCore Interceptor

当执行某一个Action的时候 需要在执行前后处理相关业务,下面看下这段代码

public virtual void OnActionExecuted(ActionExecutedContext context);

public virtual void OnActionExecuting(ActionExecutingContext context);

在Action执行前后会执行如上方法,通过对这写方法的重写来处理业务,这里根据Java中其实也差不多,.NetCore通过 创建ActionContext对象 在对象实例 Invoke 之前后分别执行当前 OnActionExecuting 、OnActionExecuted 方法

当然.NetCore中的 Filter 还有其他的,只是这里的ActionFilter 针对的 Action操作而已

原文地址:https://www.cnblogs.com/liyouming/p/9511732.html

时间: 2024-08-30 17:25:02

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor的相关文章

java Spring Boot企业微信点餐系统

 java Spring Boot企业微信点餐系统 后端开发: 1.2017龙果微服务架构的分布式事务解决方案 2.2017年龙果spring boot 入门实战视频教程-首套中文教程 3.51CTO Spring Boot实战与原理分析视频课程 4.ElasticSearch5视频教程 5.Elasticsearch顶尖高手系列:高手进阶篇(最新第二版) 6.IDEA学习视频 7.Java 微服务实践 - Spring Boot 系列 8.JAVA-ACE-架构师系列视频课程-RocketMQ

Spring Boot框架开发的Java项目在CentOS7上的部署

需求:上级拿来一份Spring Boot框架开发的Java项目代码让我在服务器上运行起来,只说了一句该框架是自带了Tomcat(不用重新安装Tomcat),一份代码下有两个项目(一个管理端项目,一个用户端项目,等会会细说).我是一名运维,在上家公司只接触过在Tomcat下部署Java项目,自带Tomcat的没接触过,目前这个公司都是php软件攻城狮,所以只能靠自己了.幸好在一个学习交流群里碰到一位Java软件攻城狮,在该攻城狮的热心指导下项目成功运行.下面是详细步骤,知识点扩展及总结将在最后写出

Java spring boot 2.0连接mysql异常:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone

解决办法:application.yml提示信息表明数据库驱动com.mysql.jdbc.Driver'已经被弃用了.应当使用新的驱动com.mysql.cj.jdbc.Driver' com.mysql.jdbc.Driver改成com.mysql.cj.jdbc.Driver 我接着运行项目有报错 解决办法: spring: datasource: url: jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding

spring boot 视图层(JAVA之学习-2)

在java之学习-1中用idea搭建了spring boot,现在来学习如何连到视图层 1:添加视图的依赖包(修改pom.xml) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 2:修改控制器(MemberController)

Spring boot 配置https 实现java通过https接口访问

近来公司需要搭建一个https的服务器来调试接口(服务器用的spring boot框架),刚开始接触就是一顿百度,最后发现互联网认可的https安全链接的证书需要去CA认证机构申请,由于是调试阶段就采用了java的keytool工具来生成密钥文件,下面是生成密钥文件的指令和步骤(前提是需要配置好java 的环境变量). 1.首先打开cmd命令,操作如下: keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 20

java Spring Boot中使用Swagger2构建API文档

1.添加Swagger2的依赖 在pom.xml中加入Swagger2的依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.spr

Spring Boot 各版本的Java版本要求

Spring Boot 与 Java 对应版本,以下表格由官方网站总结. 官网:https://spring.io/projects/spring-boot#learn https://docs.spring.io/spring-boot/docs/{verion}/reference/htmlsingle/ Go to [9. System Requirements] Sping Boot Spring Framework Java Maven Gradle Spring Boot 2.1.x

第三章 Maven构建 Java Spring Boot Web项目

3.1   认识Srping Boot Spring Boot是一个框架,是一种全新的编程规范,它的产生简化了对框架的使用,简化了Spring众多的框架中大量的繁琐的配置文件,所以说Spring Boot是一个服务于框架的框架,服务范围是简化文件的配置. Spring Boot的核心功能: 独立运行的spring项目:可以以jar包的形式独立运行,通过Java -jar xx.jar来运行. 内嵌的servlet容器:可以选择内嵌的Tomcat.Jetty或者Undertow. 提供starte

Java Spring boot 系列目录

1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介绍 1. Spring boot 介

spring boot实战(第十五篇)嵌入tomcat源码分析

嵌入tomcat源码分析 在启动spring boot工程时利用@SpringBootApplication注解,该注解启动@EnableAutoConfiguration自动配置,加载META-INF/spring.factories文件 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.springframework.boot.autoconfigure.admin.Spri