Springboot2.0 上传图片 jar包导出启动(第二章)

2023-11-12

一,目录文件结构讲解

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

1、目录讲解

src/main/java:存放代码
src/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、同个文件的加载顺序,静态资源文件

同个文件的加载顺序,静态资源文件
在 Spring Boot 中,默认情况下,一共有5个位置可以放静态资源,五个路径分别是如下5个:
1、classpath:/META-INF/resources/
2、classpath:/resources/
3、classpath:/static/
4、classpath:/public/
5、/

Spring Boot 默认会挨个从
META/resources > resources > static > public 里面找是否存在相应的资源,如果有则直接返回。
所以访问这些目录下的资源时,在路径中可以体现上面的几个路径。

4、默认配置

1)官网地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content
2)自己配置:
a.在resources目录下创建。 application.properties
b.重写静态资源加载:spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

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

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

二,文件上传实战

简介:讲解HTML页面文件上传和后端处理实战
1、讲解springboot文件上传 MultipartFile file,源自SpringMVC
1)静态页面直接访问,不需要进行controller转发:localhost:8080/index.html
注意点:
如果想要直接访问html页面,则需要把html放在springboot默认加载的文件夹下面
2)MultipartFile 对象transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)

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

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/upload" method="post"  enctype="multipart/form-data" >
        文件:<input type="file"  name="head_img">
        姓名:<input name="username" >
        <input type="submit" value="上传">
    </form>
</body>
</html>

b. 控制类中的代码如下:

    @RequestMapping("/upload")
    public Object upload(@RequestParam("head_img")MultipartFile file){
        String fileFullName = "D://img//123.png";
        File file1 = new File(fileFullName);
        try {
            file.transferTo(file1);
        }catch (IOException e){
            e.printStackTrace();
        }
        return "ok";
    }

c.springboot的默认上传文件大小为1M,如果要上传大于1M的文件需要在application.properties文件中设置:

#单个文件大小和单次请求文件大小
spring.servlet.multipart.max-file-size = 10Mb
spring.servlet.multipart.max-request-size=100Mb

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

解决方式如下:
application.properties中增加下面配置

web.images-path=D:/img
# 在默认访问路径中 添加如上配置
spring.resources.static-locations= classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/ , file:${web.images-path}

e.在D盘的目录里创建一个img的文件夹
在这里插入图片描述

测试请参考下面:

访问地址:http://localhost:8080/upload.html

选择好照片然后上传
在这里插入图片描述
上传之后会返回一个OK,这就代表上传成功
在这里插入图片描述
然后输入你设置的规定名字:123.png

在这里插入图片描述
最后打开你在D盘创建的那个img文件夹,里面会有张照片
在这里插入图片描述

三,jar包方式运行web项目的文件上传和访问处理(核心知识)

1.在pom中添加依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.先打jar包
在这里插入图片描述
在这里插入图片描述
这个是你打好jar包的位置,然后在盘服中打开
在这里插入图片描述
然后把那个jar包复制到D盘的根目录上
在这里插入图片描述
测试项目运行
使用java -jar 命令运行jar文件
在这里插入图片描述
在这里插入图片描述
这样就运行成功

最后

送大家一句话:自律且努力,别让生活在安逸!!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot2.0 上传图片 jar包导出启动(第二章) 的相关文章

  • 在javascript中通过window.location传递数据

    我试图通过 window location 传递数据 数据在 del id img album 中可用 我想通过 window location 发送多个值 window location save php type deldownload
  • 如何在Java中实现复合模式?

    我想实现一个复合模式Java以便绘制软件开发组织图 因此 我们假设有多个项目经理和多个开发人员 每个开发人员都被分配给一位项目经理 并且每个开发人员都能够使用各种编程语言进行编码 项目经理领导开发人员并准确了解他们的工作量 我对这个设计模式
  • 如何制作一个向用户显示图像而不是文本的下拉列表?

    ObjectChoiceField 字段满足我的所有要求 但它并不漂亮 这就是我所拥有的 String pets Dog Cat Duck ObjectChoiceField dd new ObjectChoiceField My Pet
  • 调整 Java 类以提高 CPU 缓存友好性

    在设计java类时 对于实现CPU缓存友好性有哪些建议 到目前为止我学到的是应该尽可能多地使用 POD 即 int 而不是整数 这样 在分配包含对象时 数据将被连续分配 例如 class Local private int data0 pr
  • Jersey/JAX-RS:如何自动使用@Valid递归级联bean验证?

    我正在 Jersey 的 REST 资源端点中验证我的 POJO public class Resource POST public Response post NotNull Valid final POJO pojo public cl
  • 如何设置第三方 cookie

    我如何设置第三方 cookie 我有要求设置cookie 并且cookie将在访问的网站中启用 就像我在访问cde com或def com或ghi com时在abc com中设置cookie一样 所以设置的cookie将在所有网站上获取 我
  • Ajax调用完成后执行函数

    我是 Ajax 新手 我尝试在使用 for 循环时使用 Ajax Ajax 调用之后 我正在运行一个使用 Ajax 调用中创建的变量的函数 该函数只执行两次 我认为 Ajax 调用可能没有足够的时间在循环开始之前进行调用 有没有办法在运行
  • js中将div旋转到一定高度

    How to rotate a div to certain height suppose 10px I can rotate a div otherwise around 360 degrees I need the angle by w
  • 计算事件之间的天数 - Android

    我一直在研究 Android API 并一直在寻找一种方法来计算当前日期和未来日期之间的天数 我对 android 还很陌生 而且我已经有几年没有做过 java 了 计算这个最简单的方法是什么 Thanks 最简单的方法是使用乔达时间 ht
  • 同源政策目的可疑

    正如我所读到的 同源策略是防止源自 邪恶 域 A 的脚本向 良好 域 B 发出请求 换句话说 跨站点请求伪造 玩了一下我了解到的Access Control Allow Origin标头和CORS据我了解 它允许从好域 B 指定服务器 域
  • 需要使用自定义类而不是在 Web 服务中生成(通过 wsimport)

    您能帮忙解决以下问题吗 当生成 WS 客户端代码 使用 wsimport ant 任务 时 所有类都会在与 Web 服务相同的包 例如 helloservice endpoint 中自动生成 例如如果我的网络服务有方法 公共节点 getNo
  • 401 未经授权的帖子回复

    我一直在使用 Angular 模板制作 Node js 网站 但我无法在 DB Mongo 上创建数据 这是代码 节点路由 var Property mongoose model Property var jwt require expre
  • 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?

    我们使用 SAX 来解析 XML 因为它不需要将整个 XML 文档读入内存来解析单个值 我读过很多文章 坚持认为 SAX 只能用于解析 解码 XML 而不能创建它 这是真的 不 这不是真的 您可以使用类似于以下内容的方式将 XML 编码为
  • 运行外部进程的非阻塞线程

    我创建了一个 Java GUI 应用程序 它充当许多低级外部进程的包装器 该实用程序按原样运行 但迫切需要一项重大改进 我希望我的外部进程以非阻塞方式运行 这将允许我并行服务其他请求 简而言之 我希望能够在生成数据时处理来自外部进程的数据
  • 在 Javascript 中使用 fetch API 接收和处理 JSON

    在我的项目中 当条件不足时 我的 Django 应用程序会发送带有消息的 JSON 响应 我使用这个 JsonResponse 指令 Code data is taken email email return JsonResponse da
  • 如何找出javascript中加载了哪些javascript?

    继另一个问题的评论之后 我问自己是否有办法获取页面上加载的所有 js 代码的列表 就像 Firebug 或 chrome Inspector 所做的那样 有没有一种纯javascript的方法 一种方法是抓取脚本标签 但这样你可能会错过动态
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT
  • 在java中加密字符串,在node.js中解密,错误:解密失败

    我正在尝试用 java 加密一个字符串 将其发送到我的 node js 服务器 然后解密 但是 当我尝试执行此操作时 尝试解密时会不断出现错误 Java加密 String privateKey someprivatekey String d
  • 使用 Google Visualization,为什么 DataView 内容显示在 ChartRangeFilter 中,而不显示在其关联的 LineChart 中?

    下面的代码应该从 CSV 文件填充 DataView 然后 DataView 被输入到 DashBoard 其中包含绑定在一起的 LineChart 和 ChartRangeFilter 我的问题是 虽然 ChartRangeFilter
  • 指定不带组件的GridBagLayout的网格参数

    我试图帮助另一个用户 但遇到了一个问题 我想用 GridBagLayout 来做到这一点 c1 c2 c3 10 80 10 v v r1 B1

随机推荐

  • windows-cmd下添加、删除和修改静态路由

    1 添加一条路由表 route add 192 168 20 0 mask 255 255 255 0 192 168 4 1 metric 2 if 2 命令说明 添加一条路由记录 所有到192 168 20 0 24网段的数据包 都通过
  • 【计算机网络系列】数据链路层①:数据链路层的三个基本问题(封装成帧、透明传输和差错检测)

    数据链路层最重要的内容是 数据链路层的点对点信道和广播信道的特点 以及这两种信道所使用的协议 PPP协议以及CSMA CD协议 的特点 数据链路层的三个基本问题 封装成帧 透明传输和差错检测 以太网MAC层的硬件地址 适配器 转发器 集线器
  • oracle无法减小列长度,中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义...

    版本号 7 0 4 业务场景 如下 中国港湾扩展表单分配时调整字段后保存时报错 无法正常维护表单定义 异常提示 异常信息 添加业务实体的时候出错 导致错误的应用程序或对象的名称 Genersoft Platform RuntimeADP C
  • NodeJS使用JWT

    JWT jsonwebtoken 目前最流行的跨域身份验证解决方案 在nodejs中使用 安装 npm install jsonwebtoken save 使用 1 在路由中引入 var jwt require jsonwebtoken 2
  • UML 类图

    参考地址 UML类图 简书 一 类图的属性 1 写法格式 属性 方法名 类型 2 权限符号 表示private 表示protected 表示default 也就是包权限 下划线表示static 斜体表示抽象 二 类的关系 1 泛化 Gene
  • 华为OD机试真题- 喊7的次数重排-2023年OD统一考试(B卷)

    题目描述 喊7是一个传统的聚会游戏 N个人围成一圈 按顺时针从1到N编号 编号为1的人从1开始喊数 下一个人喊的数字为上一个人的数字加1 但是当将要喊出来的数字是7的倍数或者数字本身含有7的话 不能把这个数字直接喊出来 而是要喊 过 假定玩
  • Nowcoder专项练习:操作系统(二)

    1 动态重定位分区分配算法 虽然动态分区法比固定分区法的内存利用率高 但它还是有零头 碎片 的问题 动态重定位分区分配算法与动态分区分配算法基本上相同 差别仅在于 在这种分配算法中 添加了紧凑功能 通常 在找不到足够大的空闲分区来满足用户需
  • 高频测试面试题

    测试面试题 1 软件测试的目的与原则是什么 答 目的 A 通过测试工作可以发现并修复软件当中存在的缺陷 B 可以降低同产品开发遇到的风险 C 记录软件运行过程中的一些数据 从而为决策者提供技术支持 原则 A 2 8定律 核心功能占20 非核
  • Unity3d 相机平滑的跟随角色

    C 脚本 代码如下 示例 using System Collections using System Collections Generic using UnityEngine public class CameraFollow MonoB
  • Oracle中Clob字段类型修改为Varchar2类型实例

    新建一个字段 alter table KQSERVER add temp VARCHAR2 2000 将原来字段数据赋值到新字段 update KQSERVER set temp SERVER IMG 删除原来字段 alter table
  • 【华为OD机试】按身高和体重排队【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 某学校举行运动会 学生们按编号 1 2 3 n 进行标识 现需要按照身高由低到高排列 对身高相同的人 按体重由轻到重排列 对于身高体重都相同的人 维持原有的编号顺序关
  • Unity shader 笔记之迷雾效果

    先看效果图 Shader Unlit FogOfWar Properties MainTex Texture 2D white CGINCLUDE include UnityCG cginc struct appdata float4 ve
  • 各国搜索引擎大全

    找客户做seo都要用到搜索引擎 全球除了谷歌 每个国家都有自己的百度 用翻译软件翻译成当地的语言搜索可能会有惊喜 中国百度 http www baidu com等 菲律宾 Philippine http www yehey com 韩国 K
  • 【08】Nginx之负载均衡

    负载均衡的作用 1 解决服务器的高并发压力 提高应用程序的处理性能 2 提供故障转移 实现高可用 3 通过添加或减少服务器数量 增强网站的可扩展性 4 在负载均衡器上进行过滤 可以提高系统的安全性 实现方式 方式一 DNS轮询方式 域名系统
  • 二、Dubbo+SpringBoot+zookeerper整合(注解方式)

    Git地址 https github com boorZ demo dubbo git 注意 Git地址上的项目与本文章有差同 请参照文章与Git Git地址 https github com boorZ demo dubbo xml 注意
  • QTableView的表格项中加入图标的方法

    当在使用表格视图的时候 需要在表格每一行前面加入图标 应该怎么做呢 Qt中通过使用MVC的处理方式 很容易做到这一点 具体实现如下 先贴出图 让大家一睹为快 下面我就来介绍一下 上图的灯泡是怎么实现的 通过重载QAbstractTableM
  • 如何安装并运行SiB-CROP模型

    目录 1 环境配置 1 1 Supported Platforms 1 2 Prerequisites 2 下载SIB CROP代码 3 SIB CROP模型编译 4 下载驱动数据 5 SIB CROP模型运行 主要参考 1 官方文档 ht
  • PSYoungGen ParNewGeneration DefNewGeneration等名词解释

    HotSpot VM的GC组老人之一Jon Masamitsu很久之前就写过blog讲解这个 https blogs oracle com jonthecollector entry our collectors 简单来说 有这么多东西反映
  • Python+opencv:图像修复

    简介 OpenCV 是一个开源的计算机视觉库 它包含了许多图像处理和计算机视觉算法 使用 OpenCV 进行图像修复主要依赖于传统的图像处理技术 OpenCV 图像修复方法及其原理 1 去噪 图像去噪是消除图像中的噪声 提高图像质量的过程
  • Springboot2.0 上传图片 jar包导出启动(第二章)

    目录 一 目录文件结构讲解 二 文件上传实战 三 jar包方式运行web项目的文件上传和访问处理 核心知识 最后 一 目录文件结构讲解 简介 讲解SpringBoot目录文件结构和官方推荐的目录规范 1 目录讲解 src main java