首页 > 编程语言 >Java后端常用功能组件(持续更新)

Java后端常用功能组件(持续更新)

时间:2023-10-30 11:36:54浏览次数:40  
标签:info Java log 后端 路径 phone path 组件 import

写项目时会存在大量的重复业务,不想重复的自己coding,就需要去cv。这里存放常用的功能代码,进行二次开发。

说明

  • 这里只给出后端的代码,前端页面的请求用postman或其他应用。
  • springboot应用
  • 结合目录与CTRL + f,可以快速定位到指定需求

目录

  1. 文件上传

文件上传

代码展示

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

@Slf4j
@RestController
public class Upload2Controller {
    @PostMapping("/upload")
    public String up(String nickname, MultipartFile phone, HttpServletRequest request) throws IOException {
        log.info("nickname: {}", nickname);
        log.info("phone的原始名字: {}", phone.getOriginalFilename());
        log.info("phone的文件类型: {}", phone.getContentType());

        String path = request.getServletContext().getRealPath("/upload/");
        log.info("获取服务器路径:{}", path);
		//仅是存放在服务器临时生成的文件夹中,需要使用流读取存放到自定义的路径中
		//或者这里的路径就写入自定义路径
        saveFile(phone, path);
        return "上传成功";
    }

    private void saveFile(MultipartFile phone, String path) throws IOException {
        log.info("判断路径是否存在,不存在就创建");
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdir();
        }

        File file = new File(path + phone.getOriginalFilename());
		//MultipartFile的方法,将对象转存到指定路径
        phone.transferTo(file);

    }

}

代码说明

  • 引入依赖:无依赖,代码中只使用了日志依赖,整体上无其他依赖
  • TODO
    • 存储路径问题:当前代码中的存储路径是动态的,每次启动服务器,Tomcat的临时存储路径都会发生变化。因此,建议使用固定的存储路径,而不是依赖于Tomcat临时目录。可以将文件保存到应用程序的特定目录或外部目录中。

    • 存储文件问题:当前代码中使用phone.transferTo(file)将文件保存到本地磁盘上。这种方式适用于小文件的保存,但对于大文件可能会导致内存溢出。为了更好地处理大文件,可以采用流式处理的方式,使用InputStream和OutputStream进行文件的读取和写入。

标签:info,Java,log,后端,路径,phone,path,组件,import
From: https://blog.51cto.com/u_15093262/8086849

相关文章

  • 如何避免JavaScript中的内存泄漏?
    前言过去,我们浏览静态网站时无须过多关注内存管理,因为加载新页面时,之前的页面信息会从内存中删除。然而,随着单页Web应用(SPA)的兴起,应用程序消耗的内存越来越多,这不仅会降低浏览器性能,甚至会导致浏览器卡死。因此,在编码实践中,开发人员需要更加关注与内存相关的内容。因此,小编今天将......
  • 如何避免JavaScript中的内存泄漏?
    前言过去,我们浏览静态网站时无须过多关注内存管理,因为加载新页面时,之前的页面信息会从内存中删除。然而,随着单页Web应用(SPA)的兴起,应用程序消耗的内存越来越多,这不仅会降低浏览器性能,甚至会导致浏览器卡死。因此,在编码实践中,开发人员需要更加关注与内存相关的内容。因此,小编今天......
  • Java8 Optional
    根据OracleJava官方文档,Optional是一个容器对象,可以包含也可以不包含非null值。Optional在Java8中引入,目的是解决NullPointerExceptions的问题。本质上,Optional是一个包装器类,其中包含对其他对象的引用。在这种情况下,对象只是指向内存位置的指针,并且也可以指向任何内容。从其......
  • Java 业务开发常见错误 100 例
    第一讲:使用并发工具库类,建议容易犯的四类错:只知道使用并发工具,但并不清楚当前线程的来龙去脉,解决多线程问题却不了解线程;--错误误以为使用了并发工具就可以解决一切线程安全问题,期望通过把线程不安全的类替换为线程安全的类来一键解决问题。--错误没有充分了解并发工具......
  • Java基本语法
    一、基本框架1)概念一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作对象(object):代表现实世界中可以明确标识的一个实体,存在独特的标识、状态和行为。例如,一条鱼是一个对象,它的状态有:颜色、品种;行为有:漫游、鱼跃等。类(class):是创建对......
  • 黑马程序员2023新版JavaWeb开发教程学习笔记
    前言该笔记灵感来源于B站《黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+Springboot》源视频地址:黑马程序员2023新版JavaWeb开发教程个人声明:本文记录个人在进行该视频学习中的知识总结,帮助大家能更快地进行对该视频内容的学习;由于该视频对......
  • java中native源码查找方法
    以Object的hashCode()方法为例:1.下载openjdk源码或从github中查找,这里以github中查找为例;2.GitHub中查找https://github.com/bpupadhyaya/openjdk-8/tree/master/hotspot源码;3.搜索到Object.c源码文件,并查找hashCode字眼,如下所示: 4.由上可知,hashCode方法实际是调用的jvm.c......
  • Java基础 反射获取构造方法
    在Java中,万物皆对象。比如,字节码文件可以看作是Class这个类的对象;Constructor这个类是用来描述构造方法的,所以这个类的对象就表示构造方法的对象;Field这个类是用来描述成员变量的,所以这个类的对象就表示成员变量的对象;Method 这个类是用来描述成员方法的,所以这个类的对......
  • Java基础 获取 class 对象的三种方式
    ①Class.forName("全类名")  →  最为常用全类名:包名+类名Class的首字母是大写的,所以是一个类名,是用来描述字节码文件的。这个类里面有一个静态方法叫 forName,参数可以传递一个类的全类名,可以获取到参数的字节码文件对象 ②类名.class  →  这种方式更......
  • Java实现分页的方式有哪些?
    1、手动分页不使用任何框架,用limt分页selectxxfromtab_alimt#{pageNo},#{pageSize}2、RowBounds分页(不推荐)这个是内存分页,它的原理是一次性查出所有数据,然后在内存里进行分页,占内存。3、PageHelper分页(推荐)Mybatis分页插件pom依赖:<dependency><groupId>com.g......