1. 静态资源映射器

    • 注解 configuration
    • 继承 WebMvcConfigurationSupport
      • 实现addResourceHandlers方法
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurationSupport{
    
    	@override
    	protect void addResourceHandlers(ResourceHandlerRegister registry){
    		registry.addResourceHandler("/backend/**").addResourceLocation("classpath:/backend/")
    	}
    }
    
  2. 全局异常处理器

    • 注解:ControllerAdvice(annotations={**Controller.class})
    • ​ ResponseBody
    • 实现方法上添加注解 ExceptionHandle(***Exception.class)
    @ControllerAdvice(annotations = {RestController.class,Controller.class})
    @ResponseBody
    @Slf4j
    public class GlobalExceptionHandler{
    
    	@ExceptionHandler(***Expection.class)
    	 public R<String> exceptionHandler(SQLIntegrityConstraintViolationException exception) {
            log.error(exception.getMessage());
            if (exception.getMessage().contains("Duplicate entry")) {
                String[] strings = exception.getMessage().split(" ");
                String msg ="用户名 "+  strings[2] + " 已存在";
                return R.error(msg);
            }
    
            return R.error("未知错误存在");
        }
    }
    
  3. 过滤器

    • 注解:WebFilter(filtername=””, urlPattern = “/拦截什么样的路径”)
    • 接口:Filter
      • 实现 doFilter()方法
    • 若使用通配符,需要使用 antPathMatcher 对象
    @WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")
    public class LoginCheckFilter implements Filter{
    
    	@Override
    	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain){
    		// 进行向下转型
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            HttpServletResponse response = (HttpServletResponse) servletResponse;	
    		
            // 释放拦截
             filterChain.doFilter(request,response);
            // 进行处理,向前端传递信号,由前端进行分析
            response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));
            
            
        }
    }
    
  4. 分页查询

    • 创建mp拦截器配置
      • 类注解: @configuration
      • 方法注解: @Bean
      • 创建mp内置拦截器
      • 为拦截器添加分页拦截器
    • Controller使用分页构造器
      • 构建分页构造器
      • 构建条件过滤器
      • 添加过滤条件
      • 进行查询
    // 使用分页查询
    @GetMapping("/page")
    public R<Page<Employee>> page(int page,int pageSize,String  name){
      // 构造分页构造器,将当前查询页数,页码大小传入
            Page<Employee> pageInfo = new Page<>(page,pageSize);
            // 条件构造村
            LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
            // 添加一个过滤条件
                                            // 当name !=null 改行函数才会执行
            queryWrapper.like(StringUtils.isNotEmpty(name), Employee::getName, name);
            queryWrapper.orderByDesc(Employee::getUpdateTime);
    
            // 执行查询,页数大小和查询条件
            employeeService.page(pageInfo, queryWrapper);
            return R.success(pageInfo);
    }
    
    // 进行mp拦截器配置
    @Configuration
    public class MyBatisPlusConfig{
    	@Bean
    	public MyBatisPlusInterceptor mybatisInterceptor(){
    		MyBatisPlusInterceptor mp = new MyBatisPlusInterceptor();
    		mp.addInnerInterceptor(new PaginationInnerInterceptor);
    		return mp;
    	}
    }
    
  5. 消息转换器,对数据进行转换

原文地址:http://www.cnblogs.com/serendipity-igao/p/16811430.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性