gpt4 book ai didi

SpringBoot添加自定义拦截器的实现代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SpringBoot添加自定义拦截器的实现代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在controller层时,往往会需要校验或验证某些操作,而在每个controller写重复代码,工作量比较大,这里在springboot项目中 ,通过继承webmvcconfigureradapter,添加拦截器.

1、webmvcconfigureradapter源码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/*
  * copyright 2002-2016 the original author or authors.
  *
  * licensed under the apache license, version 2.0 (the "license");
  * you may not use this file except in compliance with the license.
  * you may obtain a copy of the license at
  *
  *   http://www.apache.org/licenses/license-2.0
  *
  * unless required by applicable law or agreed to in writing, software
  * distributed under the license is distributed on an "as is" basis,
  * without warranties or conditions of any kind, either express or implied.
  * see the license for the specific language governing permissions and
  * limitations under the license.
  */
package org.springframework.web.servlet.config.annotation;
import java.util.list;
import org.springframework.format.formatterregistry;
import org.springframework.http.converter.httpmessageconverter;
import org.springframework.validation.messagecodesresolver;
import org.springframework.validation.validator;
import org.springframework.web.method.support.handlermethodargumentresolver;
import org.springframework.web.method.support.handlermethodreturnvaluehandler;
import org.springframework.web.servlet.handlerexceptionresolver;
/**
  * an implementation of {@link webmvcconfigurer} with empty methods allowing
  * subclasses to override only the methods they're interested in.
  *
  * @author rossen stoyanchev
  * @since 3.1
  */
public abstract class webmvcconfigureradapter implements webmvcconfigurer {
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configurepathmatch(pathmatchconfigurer configurer) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configurecontentnegotiation(contentnegotiationconfigurer configurer) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configureasyncsupport(asyncsupportconfigurer configurer) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configuredefaultservlethandling(defaultservlethandlerconfigurer configurer) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addformatters(formatterregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addinterceptors(interceptorregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addresourcehandlers(resourcehandlerregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addcorsmappings(corsregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addviewcontrollers(viewcontrollerregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configureviewresolvers(viewresolverregistry registry) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addargumentresolvers(list<handlermethodargumentresolver> argumentresolvers) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void addreturnvaluehandlers(list<handlermethodreturnvaluehandler> returnvaluehandlers) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configuremessageconverters(list<httpmessageconverter<?>> converters) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void extendmessageconverters(list<httpmessageconverter<?>> converters) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void configurehandlerexceptionresolvers(list<handlerexceptionresolver> exceptionresolvers) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation is empty.
    */
   @override
   public void extendhandlerexceptionresolvers(list<handlerexceptionresolver> exceptionresolvers) {
   }
   /**
    * {@inheritdoc}
    * <p>this implementation returns {@code null}.
    */
   @override
   public validator getvalidator() {
     return null;
   }
   /**
    * {@inheritdoc}
    * <p>this implementation returns {@code null}.
    */
   @override
   public messagecodesresolver getmessagecodesresolver() {
     return null ;
   }
}

可以看出,该类 还能配置其他很多操作,例如异常处理,跨域请求等配置.

2、自动义web配置类 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.web.servlet.config.annotation.interceptorregistry;
import org.springframework.web.servlet.config.annotation.webmvcconfigureradapter;
@configuration
public class webmvcconfig extends webmvcconfigureradapter {
   @override
   public void addinterceptors(interceptorregistry registry) {
     registry.addinterceptor(getmyinterceptor()).addpathpatterns( "/**" );
   }
   @bean
   public myinterceptor getmyinterceptor(){
     return new myinterceptor();
   }
}

  如果需要添加多个拦截器,interceptorregistry registry.addinterceptor方法 。

?
1
2
3
4
5
public interceptorregistration addinterceptor(handlerinterceptor interceptor) {
     interceptorregistration registration = new interceptorregistration(interceptor);
     this .registrations.add(registration);
     return registration;
   }

registrations是个数组结构,可以添加多个 。

3、自动义拦截器 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
import org.springframework.web.method.handlermethod;
import org.springframework.web.servlet.handler.handlerinterceptoradapter;
public class myinterceptor extends handlerinterceptoradapter {
   final logger logger = loggerfactory.getlogger(getclass());
   @override
   public boolean prehandle(httpservletrequest request, httpservletresponse response, object handler) throws exception {
     //拦截操作
     return true ;
   }
}

总结 。

以上所述是小编给大家介绍的springboot添加自定义拦截器的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

原文链接:https://www.cnblogs.com/zwdx/archive/2018/09/19/9674497.html 。

最后此篇关于SpringBoot添加自定义拦截器的实现代码的文章就讲到这里了,如果你想了解更多关于SpringBoot添加自定义拦截器的实现代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com