在Spring启动应用程序中添加HttpRequest拦截器的正确方法是什么?我想要做的是为每个http请求记录请求和响应 .
Spring启动文档根本不涉及此主题 . (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)
我发现了一些关于如何对旧版本的spring执行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用 . 请帮忙 .
在Spring启动应用程序中添加HttpRequest拦截器的正确方法是什么?我想要做的是为每个http请求记录请求和响应 .
Spring启动文档根本不涉及此主题 . (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)
我发现了一些关于如何对旧版本的spring执行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用 . 请帮忙 .
5 回答
因为你希望尽可能依赖Spring的自动配置 . 要添加其他自定义配置(如拦截器),只需提供
WebMvcConfigurerAdapter
的配置或bean .这是一个配置类的示例:
NOTE 如果要保留Spring Boots auto configuration for mvc,请不要使用@EnableWebMvc注释 .
WebMvcConfigurerAdapter
将在Spring 5中弃用 . 来自Javadoc:如上所述,您应该做的是实现
WebMvcConfigurer
并覆盖addInterceptors
方法 .要将拦截器添加到Spring引导应用程序,请执行以下操作
我有同样的问题WebMvcConfigurerAdapter被弃用 . 当我搜索示例时,我几乎找不到任何实现的代码 . 这是一段工作代码 .
创建一个扩展HandlerInterceptorAdapter的类
然后实现WebMvcConfigurer接口
您也可以考虑使用开源SpringSandwich库,它允许您直接在控制器中注释要应用哪些拦截器,就像您为url路由注释一样 .
这样,SpringSandwich的方法和类注释很容易在重构中存活,并且清楚地说明了应用于何处 . (披露:我是作者) .
http://springsandwich.com/