SpringBoot中是否有与rails等效的before_filter?

时间:2019-07-08 17:34:44

标签: spring-boot

从Rails开始在SpringBoot中进行编程,并且无法对它等效于before_filter。我只想添加在调用控制器之前发生的简单功能

1 个答案:

答案 0 :(得分:2)

您要寻找的是HandlerInterceptor,它具有以下方法,可让您在发生某些事件时执行一些代码:

  • preHandle(..):在执行实际的控制器方法之前
  • postHandle(..):执行控制器方法后
  • afterCompletion(..):完整的请求完成后

创建HandlerInterceptor后,可以通过将其添加到InterceptorRegistry进行注册:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyHandlerInterceptor());
    }
}