最新爆破专栏丨SpringBoot2(8),java技术面试题目

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

   文件:     ```
4. 配置application.properties

接着在resources目录下,创建application.properties配置文件,并设置相关配置属性,这里主要是对文件上传路径做了配置。

# Template mode to be applied to templates. See also StandardTemplateModeHandlers.
spring.thymeleaf.mode=LEGACYHTML5

spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

#文件上传目录(注意Linux和Windows上的目录结构不同)
#uploadFolder=/root/upload/
#特别要注意此位置
uploadFolder=E:/upload/
5. 创建信息提示类Message

创建一个实体类,用于对外展示文件上传后的状态信息。

package com.yyg.boot.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 采用lombok简化bean
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Message {

    /**
     *0表示成功,-1表示失败
     */
    int status;

    /**
     * 向前端返回的内容
     */
    String massage;

}
6. 创建文件上传的UploadController类

然后我们创建一个Controller,在这里编写文件上传接口,文件上传要使用post请求方式。

package com.syc.boot.web;

import com.syc.boot.domain.Message;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.UUID;

/**
 * 实现文件上传的控制器
 */
@Controller
public class UploadController {

    @Value("${uploadFolder}")
    private String  fileDir;

    @RequestMapping("/picUpload")
    public String picUpload(){
        //跳转到picUpload.html
        return "picUpload";
    }

    @ResponseBody
    @PostMapping("/upload")
    public Object upload(MultipartFile fileUpload){
        //获取文件名
        String fileName = fileUpload.getOriginalFilename();
        //获取文件后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //重新生成文件名
        fileName = UUID.randomUUID()+suffixName;
        //指定本地文件夹存储图片
        try {

            System.out.println("------->>"+fileDir);
            File dir = new File(fileDir);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            File upload_file = new File(fileDir + fileName);
            fileUpload.transferTo(upload_file);
            return new Message(0,"success to upload");
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(-1,"fail to upload");
        }
    }
}
7. 应用程序入口类

最后编写项目入口类。

package com.syc.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class UploadWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(UploadWebApplication.class, args);
    }
}
8. 运行程序,实现文件上传

接下来我们启动程序,访问文件上传界面,选择文件进行上传,如果可以看到如下效果,则说明文件上传成功。

图片

我这里是把文件上传到了本机的E盘目录下,真正开发时一般是上传到Linux服务器的某个目录下,过程都一样的,主要是存储位置的不同。当然现在也有很多项目是采用云存储,关于云存储我会在下一章节中带大家实现。

图片

9. 项目结构

最后我们看一下项目的代码结构,各位可以参考创建。

图片

三. SpringBoot中实现多文件上传

上面我们实现了单个文件的上传,但有时我们也需要同时上传多个文件,那这该如何实现呢?

1. 创建多文件上传的html页面

我们在上面的项目基础之上,创建多文件上传的html页面,页面名称是multiUpload.html。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>多文件上传</title>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/>
</head>

<body>
<div>
    <div>
        <div>
            <h3>多个文件上传</h3>
        </div>
        <div>
            <form  method="post" enctype="multipart/form-data" th:action="@{/uploadMultifile}">
                <div>
                    <label for="attachment1">文件上传: </label>
                    <div>
                        <input type="file"  name="attachment" id="attachment1" placeholder="请选择邮件附件"/>
                    </div>
                </div>
                <div>
                    <label for="attachment2">文件上传: </label>
                    <div class="col-sm-5">
                        <input type="file"  name="attachment" id="attachment2" placeholder="请选择邮件附件"/>
                    </div>
                </div>
                <div>
                    <label for="attachment3">文件上传: </label>
                    <div>
                        <input type="file" name="attachment" id="attachment3" placeholder="请选择邮件附件"/>
                    </div>
                </div>

                <div>
                    <div>
                        <button type="submit">上&nbsp;传</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
</body>

</html>
2. 创建一个多文件上传的方法

我们直接在上面的Controller中添加一个新的多文件上传接口。

    @RequestMapping("/multiUpload")
    public String multiUpload(){
        //跳转到multiUpload.html
        return "multiUpload";
    }

	@RequestMapping(value = "/uploadMultifile", method = RequestMethod.POST)
    @ResponseBody
    public Object uploadMultiFile(@RequestParam("attachment") MultipartFile[] fileUpload) {
        
        try {
            for (int i=0;i<fileUpload.length;i++){
                //获取文件名
                String fileName = fileUpload[i].getOriginalFilename();
                //指定本地文件夹存储图片
                File dir = new File(fileDir);


# 难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

![阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服](https://img-blog.csdnimg.cn/img_convert/11d08ba75cba88605c8509a4e0548e30.webp?x-oss-process=image/format,png)

![阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服](https://img-blog.csdnimg.cn/img_convert/33e6901b1b185ac10feb0e691321ab5a.webp?x-oss-process=image/format,png)

![image.png](https://img-blog.csdnimg.cn/img_convert/2faa3a9cee2e3fc9664e00ad56a7f53b.webp?x-oss-process=image/format,png)





> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

存中...(img-OqXJUcpR-1715677354275)]

[外链图片转存中...(img-DtpelLcH-1715677354275)]





> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值