我知道这已被问了很多次,但没有一个能够让我的代码工作。我可能做错了什么,但我找不到什么。春季截取不起作用
我正在使用AngularJS的Spring Boot,我试图做的是预处理所有的请求。
这是我的代码:
控制器:
@RestController
@RequestMapping(value = { "/user" })
public class UserController {
@RequestMapping(value = "/get", method = RequestMethod.GET)
public String getLanguage() {
return "user";
}
}
拦截:
@Component
public class RequestHandler extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
System.out.println("intercepted");
return false;
}
}
WebConfig:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Autowired
HandlerInterceptor requestHandler;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(requestHandler);
}
}
而且我将此添加到applicationContext.xml中:
<mvc:interceptors>
<bean class="server.RequestHandler" />
</mvc:interceptors>
我一直在周末试图做这项工作,我不能,任何帮助将非常感激!
谢谢!
你试过注入RequestHandler而不是一般的HandlerInterceptor。或者用registry.addInterceptor(new RequestHandler())注册你的拦截器? – Nathanael
我已经尝试过,但它仍然无法工作。 – Motomine
为什么你有用于设置Spring MVC的xml和java配置......这是等待发生的麻烦......也没有'@ EnableWebMvc'或' '那些配置不是如果你手动配置'HandlerAdapter'和/或'HandlerMapping',情况同样适用。 –