我知道這已被問了很多次,但沒有一個能夠讓我的代碼工作。我可能做錯了什麼,但我找不到什麼。春季截取不起作用
我正在使用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',情況同樣適用。 –