如何拦截spring REST控制器中的所有请求?

Alf*_*o M 6 java rest spring

我有一堆控制器,例如:

@RestController
public class AreaController {
    @RequestMapping(value = "/area", method = RequestMethod.GET)
    public @ResponseBody ResponseEntity<Area> get(@RequestParam(value = "id", required = true) Serializable id) { ... }
}
Run Code Online (Sandbox Code Playgroud)

我需要拦截所有到达他们的请求,

我创建了一个像这个例子的拦截器:

http://www.mkyong.com/spring-mvc/spring-mvc-handler-interceptors-example/

但它永远不会进入:(

因为我只使用注释,所以我没有定义拦截器的 XML,我发现它是这样设置的:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.test.app")
public class AppConfig extends WebMvcConfigurerAdapter {

    @Bean
    public ControllerInterceptor getControllerInterceptor() {
        ControllerInterceptor c = new ControllerInterceptor();
        return c;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getControllerInterceptor());
        super.addInterceptors(registry);
    }

}
Run Code Online (Sandbox Code Playgroud)

我做错了什么还是我错过了什么?

Alf*_*o M 2

所以显然我做错了什么但不能说是什么

定义拦截器如下:

<mvc:interceptors>
  <bean class="com.test.ControllerInterceptor" />
</mvc:interceptors> 
Run Code Online (Sandbox Code Playgroud)

我很确定你也可以在纯java中定义它,但这是有效的,

答案位于: http: //viralpatel.net/blogs/spring-mvc-interceptor-example/