• 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

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

  • 相关阅读:
    JAVA定时任务原理入门
    关键基础设施成为黑客攻击的重点目标
    RedissonClient 分布式锁 处理并发访问共享资源
    vue-pdf结合alloyfinger手势缩放旋转上下翻页pdf文件
    循环神经网络
    百度文库旋转验证码识别
    线程安全问题的原因和解决方案大杂烩
    chatgpt赋能python:Python中的数字转换
    后端response响应输出结果到前端
    如何保障需求质量(上):你应该知道的
  • 原文地址:https://blog.csdn.net/weixin_65451442/article/details/125501057