• Spring Boot整合Spring mvc(文件上传/拦截器)


    一.首先当然是导入依赖

    这个依赖被整合到了spring-boot-web里面所以只要导入了

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-web</artifactId>
    4. </dependency>

     二.拦截器

    实现接口用过mvc都知道实现HandlerInterceptor,这里也是一样的,我们创建一个类来实现它。我这里导入了两个页面,一个登录,只有登录才可以访问成功页面。 


    如图代码如下

    1. public class LoginInterceptor implements HandlerInterceptor {
    2. @Override
    3. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    4. return false;
    5. }
    6. }

    此时我们定义好了自己的拦截器规定,但是并没有把拦截器规定放入到SpringMVC中,那么对于Spring boot整合的SpringMVC来说,如何把规定放入到Spring MVC中呢?也就是告诉mvc我要这样拦截。在创建一个class来实现WebMvcConfigurer

    1.释放静态资源。

    2.不被拦截的请求页面。

    1. @Configuration
    2. public class WebMvcConfig implements WebMvcConfigurer {
    3. //释放的静态资源
    4. private static final ArrayList STATIC_PATH=new ArrayList();
    5. static {
    6. STATIC_PATH.add("/css/**");
    7. STATIC_PATH.add("/lib/**");
    8. STATIC_PATH.add("/js/**");
    9. STATIC_PATH.add("/images/**");
    10. }
    11. //不被拦截的请求和页面
    12. @Override
    13. public void addInterceptors(InterceptorRegistry registry) {
    14. registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
    15. .excludePathPatterns("/index.html")
    16. .excludePathPatterns(STATIC_PATH);
    17. }
    18. }

    写好之后,拦截器生效

     


     

     三.文件上传

    1.我们写一个文件上传的表单

    1. <form action="提交接口" method="post" enctype="multipart/form-data">
    2. 上传:<input type="file" name="filename"/>
    3. <input type="submit"/>
    4. </form>

     


     2Controller代码

    1. @Slf4j
    2. @RestController
    3. @RequestMapping("fileupload")
    4. public class Fileup {
    5. @PostMapping
    6. public void download(@RequestParam("filename") MultipartFile file, HttpServletRequest request) throws IOException {
    7. System.out.println(file.getName());
    8. //处理图片
    9. String fileName= UUID.randomUUID()+file.getOriginalFilename();
    10. String path = "D://blog_images";
    11. file.transferTo(new File(path+File.separator+fileName));
    12. System.err.println("上传成功");
    13. }
    14. }

     选择一个文件路径当然你可以写在yml里面提高代码质量。

    记得释放这个接口不被拦截 

     


     

     四.设置文件上传大小

     在yml里面设置

    1. spring:
    2. servlet:
    3. multipart:
    4. max-file-size: 20MB
    5. max-request-size: 20MB

                                                   -------------------------完结-------------------------

  • 相关阅读:
    【LeetCode】2319. 判断矩阵是否是一个X矩阵
    ARM 和 龙芯上 Arch Linux 安装手记
    指针综合实训(专业)
    浅谈LockBit勒索病毒
    向量空间概述
    在HTML和CSS当中运用显示隐藏
    深入理解与使用go之中间件--实现
    YOLOV2代码详解
    微信公众平台怎么添加秒杀活动
    联通面试题
  • 原文地址:https://blog.csdn.net/weixin_65451442/article/details/125501057