刚在IDEA创建了一个springboot 的web项目 ,按网上配置拦截器没有效果!!!
启动springboot:run的时候加载了一次 addInterceptors(InterceptorRegistry registry)这个配置方法,但是没有进去拦截方法
访问url的时候,就没有拦截效果!!!急,求解
代码 1:
package com.example.springbootdemo; import com.example.springbootdemo.Interceptor.LoginInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * 配置继承WebMvcConfigurerAdapter * @author sam * @since 2017/7/16 */ @Configuration public class WebConfig extends WebMvcConfigurerAdapter { /** * 自定义静态资源 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //将所有/static/** 访问都映射到classpath:/static/ 目录下 registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } /** * 拦截器(用户登录验证) * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns 用于添加拦截规则 // excludePathPatterns 用户排除拦截 registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user","/login"); super.addInterceptors(registry); } }
代码 2:
package com.example.springbootdemo.Interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { boolean flag =true; System.out.print("进来了"); return flag; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }控制层代码:
package com.example.springbootdemo.web; import com.example.springbootdemo.entity.User; import com.example.springbootdemo.mongodb.domain.zhsl_item_info; import com.example.springbootdemo.mongodb.service.ItemService; import com.example.springbootdemo.service.UserService; import com.mongodb.MongoCredential; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @Controller @RequestMapping("/test") public class TestController { @Autowired private UserService userService; @Autowired private ItemService itemService; @RequestMapping("") public String test(){ User user=userService.queryUserName("460033199411153970"); zhsl_item_info zhslItemInfo=itemService.queryItemData("46020000YG-XK-0102"); return "index.jsp"; } @RequestMapping("/demo") @ResponseBody public String demo(){ return "{'status':'ok'}"; } }
在线等!!!!