拦截器
在以下情况下,可以使用Spring Boot中的Interceptor(拦截器)来执行操作:
- 在将请求发送到控制器之前(拦截请求)
- 在将响应发送给客户端之前(拦截响应)
例如,您可以使用拦截器在将请求发送到控制器之前添加请求标头,并在将响应发送到客户端之前添加响应标头。要使用拦截器,您需要创建支持它的@Component类,并且它应该实现HandlerInterceptor接口。
以下是使用拦截器时应了解的三种方法-
- preHandle()方法 - 用于在将请求发送到控制器之前执行操作。此方法应返回true,以将响应返回给客户端。
- postHandle()方法 - 用于在将响应发送到客户端之前执行操作。
- afterCompletion()方法 - 用于完成请求和响应后执行操作。
观察以下代码以更好地理解-
您将必须使用WebMvcConfigurerAdapter向InterceptorRegistry注册此拦截器r,如下所示-
在下面给出的示例中,我们将使用GET products API,该产品的输出如下 -
下面给出了Interceptor类ProductServiceInterceptor.java的代码-
下面提供了用于将拦截器注册到拦截器注册表中的Application Configuration类文件的代码– ProductServiceInterceptorAppConfig.java
控制器类文件ProductServiceController.java的代码如下所示-
下面给出了Product.java的POJO类的代码-
下面给出了Spring Boot应用程序类文件DemoApplication.java的main方法代码-
Maven构建的代码– pom.xml如下所示-
下面给出了Gradle Build – build.gradle的代码-
RESTFul Web 服务参考>>>
您可以创建一个可执行的JAR文件,并使用Maven或Gradle命令运行Spring Boot应用程序-
对于Maven,您可以使用以下命令-
在“BUILD SUCCESS”之后,您可以在target目录下找到JAR文件。
对于Gradle,您可以使用以下命令-
在“BUILD SUCCESSFUL”之后,您可以在build/libs目录下找到JAR文件。
您可以使用以下命令运行JAR文件-
在Tomcat端口8080上启动应用程序
现在在POSTMAN应用程序中请求URL,您可以看到如下所示的输出-
PUT URL:http://localhost:8080/products