SpringBoot2.0入门(详细文档)二

简介: SpringBoot2.0入门(详细文档)二

文章目录

http其他请求

SpringBoot2.x目录文件结构

SpringBoot2.x文件上传实战

文件上传和访问需要指定磁盘路径


http其他请求

  • POST/uri 创建
  • DELETE/uri/xxx 删除
  • PUT/uri/xxx 更新或者创建
  • GET/uri/xxx 查看

看似地址一样其实请求方式不一样


SpringBoot2.x目录文件结构

简介:讲解SpringBoot目录文件结构和官网推荐的目录规范


1.目录结构

src/main/java:存放代码

ser/main/resources

static:存放静态文件,比如css,js,image,(访问方式http://localhost:8080/js/main.js)

templates:存储静态模板页面jsp,html,tpl

config:存放配置文件,application.properties

resources:

2.引入依赖Thymeleaf,如果要访问templates文件夹下的资源,需要引入

以下依赖,进行页面的转发方式访问

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

注意:如果不引入这个依赖包,html文件应该放在默认加载文件夹里面

比如resources,static,public这几个文件夹,才可以访问


3.同个文件的加载顺序,静态资源文件

在SpringBoot中默认情况下,一共有5个位置可以:

  1. classpath:/META-INF/resources/
  2. classpath:/resources/
  3. classpath:/static/
  4. classpath:/public/
  5. /

SpringBoot默认会挨个从

META/resources>resources>static>public 里面找是否存在相应的资源,如果有则直接返回

所以访问这些目录下的资源时,在路径中可以体现上面的几个路径


4.默认配置

  1. 官网地址:https://springdoc.cn/spring-boot-application-configuration-tutorial/
  2. 自己配置

       1.在resources目录下创建,application.properties

       2.重写静态资源加载: spring.resources.static-locations = classpath:/META-

       INF/resources/,classpath:/resources/,classpath:/staticl,classpath:/public/

5.静态资源文件存储在CDN,他可以加快静态资源的访问速度。

在大型的公司中可能会实现静态资源和java代码的分离。把静态资源的加载放到另外一个工程中使用。

SpringBoot2.x文件上传实战

简介:讲解HTML页面文件上传和后端处理实战


1.讲解SpringBoot文件上传MultipartFile file,源自SpringMVC

  1.静态页面直接,不需要进行controller转发:localhost:8080/index.html

    注意点:

    如果想要直接访问html页面,则需要把html放在SpringBoot默认加载的文件夹下面

  2.MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用的FileOutStream方便和高效)

     a. 在static下面创建一个upload.html,页面内容如下

<form action="/upload" method="post"  enctype="multipart/form-data" >
    文件:<input type="file"  name="head_img">
    姓名:<input name="username" >
    <input type="submit" value="上传">
</form>
    b. 控制类中的代码如下
    upload.html中的文件name要和@RequestParam("head_img")一致
@RequestMapping("/upload")
@ResponseBody
public Object upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest req){
    // 动态获取文件的真实路径,用于保存上传的文件
    String filepath =  "D:/test/";
    System.out.println(filepath);
    // 获取普通表单字段
    String username =  req.getParameter("username");
    System.out.println("用户名:"+username);
    // 获取文件的全名
    String filename =  file.getOriginalFilename();
    System.out.println("文件全名:"+filename);
    String suffixName =  filename.substring(filename.indexOf("."));
    System.out.println("后缀名:"+suffixName);
    filename = UUID.randomUUID() +  suffixName;
    File newFile = new  File(filepath+filename);
    try {
        file.transferTo(newFile);
    } catch (IllegalStateException | IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return filename;
}
c.SpringBoot的默认上传文件大小为1M,如果要上传大于1M的文件需要在application.properties文件中设置:
#单个文件大小和单次请求文件大小
spring.servlet.multipart.max-file-size=10Mb
spring.servlet.multipart.max-request-size=100Mb

文件上传和访问需要指定磁盘路径

这时候的文件是无法上传成功的:因为我们无法在jar中上传和访问一文件


1.解决方法如下:

  1. application.properties中增加下面配置
#声明一个要上传的文件路径
web.images-path=D:/test
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.images-path}
相关文章
|
5月前
|
Java Docker 容器
美团大牛精心整理SpringBoot学习笔记,从Web入门到系统架构
近期慢慢复工,为了准备面试,各路码友们都开始磨拳擦脚,背面试题、知识点。小编最近得一良友赠送了一份关于SpringBoot的学习笔记,简直不要好用,理论解析言简意赅,每一步操作都有图片展示。这么好的东西肯定不能私藏,为了感谢大家在2019年里的支持,我现在将这份笔记赠送给大家,祝大家前程似锦,Offer不断!
|
7月前
|
Java Go 开发者
Spring Boot 简介与入门
Spring Boot 简介与入门
48 0
|
7月前
|
XML Java Spring
SpringBoot2.0入门(详细文档)(下)
SpringBoot2.0入门(详细文档)(下)
SpringBoot2.0入门(详细文档)(下)
|
7月前
|
Java 测试技术 Maven
SpringBoot2.0入门(详细文档)(上)
SpringBoot2.0入门(详细文档)(上)
|
2天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
17天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
4月前
|
Java API
分布式锁【分布式锁概述、业务介绍、创建SpringBoot项目】(一)-全面详解(学习总结---从入门到深化)
分布式锁【分布式锁概述、业务介绍、创建SpringBoot项目】(一)-全面详解(学习总结---从入门到深化)
23 0
|
9月前
|
Java Spring
Spring Boot入门(二十五) 之 错误页面的定制
Spring Boot入门(二十五) 之 错误页面的定制
|
9月前
|
JavaScript Java Spring
Spring Boot入门(二十四) 之 员工删除实现
Spring Boot入门(二十四) 之 员工删除实现
Spring Boot入门(二十四) 之 员工删除实现
|
5月前
|
存储 JSON Java
SpringBoot - 信息检索与ElasticSearch入门
SpringBoot - 信息检索与ElasticSearch入门
37 0