大佬教程收集整理的这篇文章主要介绍了Spring Interceptor在Spring Data REST URL中不起作用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通过声明类型为MappedInterceptor的bean并将其注入我的拦截器(扩展了handlerinterceptorAdapter),Spring Data Rest拾取了我的拦截器,并且现在可以在应用程序上的任何URL上使用。
这转化为以下实现(替换了我原来的问题):
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@autowired
DbeditorTenanTinterceptor dbeditorTenanTinterceptor;
@Bean
public MappedInterceptor dbeditorTenanTinterceptor() {
return new MappedInterceptor(new String[]{"/**"}, dbeditorTenanTinterceptor);
}
}
不幸的是,我在Spring文档中找不到对此的任何引用。
我正在使用Spring Data Rest和JPA进行项目,并且正在尝试配置http拦截器。根据Spring Web MVC Docs-Handler
Mapping Interceptor中提供的参考文档,我创建了一个扩展HandlerInterceptorAdapter的组件,如下所示:
@Component
public class DBEditorTenanTinterceptor extends HandlerInterceptorAdapter {
Logger logger = LoggerFactory.getLogger(DBEditorTenanTinterceptor.class);
@Override
public Boolean preHandle(httpServletrequest request,httpServletResponse response,Object handler)
throws Exception {
logger.debug("********** INTERCEPTION succesSFUL **********");
return true;
}
}
然后,通过扩展WebMvcConfig来注册拦截器(如Spring Web MVC Docs-Config
Interceptors中所述)
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
DBEditorTenanTinterceptor dbEditorTenanTinterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(dbEditorTenanTinterceptor)
.addPathPatterns("/**");
}
}
当我向Spring Data REST未使用的任何URL(例如/ Helloworld)发出http请求时,拦截器按预期工作,如我所见,记录器输出
017-10-26 13:16:24.689 DEBUG 17012 --- [p-nio-80-exec-4] c.c.v.d.DBEditorTenanTinterceptor : ********** INTERCEPTION succesSFUL **********
但是,当spring数据库使用URL时,不会调用我的拦截器。这适用于所有网址,例如/ api / {模型中的现有实体}
为什么没有为Spring Data Rest URL调用我的拦截器?如何使拦截器对所有请求起作用?
非常感谢。
以上是大佬教程为你收集整理的Spring Interceptor在Spring Data REST URL中不起作用全部内容,希望文章能够帮你解决Spring Interceptor在Spring Data REST URL中不起作用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。