> 文章列表 > 【Java Web】011 -- SpringBootWeb综合案例(删除/修改员工、文件上传、配置文件)

【Java Web】011 -- SpringBootWeb综合案例(删除/修改员工、文件上传、配置文件)

【Java Web】011 -- SpringBootWeb综合案例(删除/修改员工、文件上传、配置文件)

目录

一、新增员工

1、需求分析

2、代码实现

二、文件上传

1、简介(文件上传基础示例

①、文件上传前端页面请求

②、multipart/form-data

③、服务端接收文件

④、代码实现

⑤、小结

2、本地存储(很少使用)

①、实现思路

②、实现步骤

③、默认文件上传大小

3、阿里云OSS(对象存储服务)

①、阿里云简介

②、对象存储服务(OSS)

③、使用第三方服务的通用思路

④、第三方服务 -- 准备工作

⑤、第三方服务 -- 参考SDK,编写示例

⑥、第三方服务 -- 案例集成OSS

⑦、小结

三、修改员工

1、查询回显

①、实现思路

②、代码实现

2、修改员工

①、实现思路

②、代码实现

四、配置文件(Application.properties)

1、问题分析(阿里云OSS配置信息的硬编码问题)

2、参数配置化

3、yml配置文件(推荐使用)

①、配置格式

②、配置文件优先级

③、yml配置文件的基本语法

④、yml数据格式

⑤、yml配置文件替换properties

⑥、小结

4、@ConfigurationProperties

①、问题分析

②、解决方案(@ConfigurationProperties(prefix = "aliyun.oss"))

③、解决警告

④、@ConfigurationProperties与@Value


一、新增员工

1、需求分析

具体的实现思路:

2、代码实现

具体实现过程:

Ⅰ、Controller方法:

Ⅱ、Service方法:

service接口:

service实现类:

Ⅲ、Mapper方法:

二、文件上传

1、简介(文件上传基础示例)

①、文件上传前端页面请求

文件上传前端页面upload.html):

提交表单查看请求信息:

请求头数据:

请求有效载荷(payload):

②、multipart/form-data

使用multipart/form-data之后,内容将以boundary之后的数据进行分隔

③、服务端接收文件

为了能够被识别接收,前端中的表单项的名称要与后端方法形参名称保持一致

④、代码实现

Ⅰ、Controller方法:

Ⅱ、前端页面:

Ⅲ、运行测试:

服务端代码断点:

而目前上传的上来的文件仅仅是个临时文件(3个表单项):

但只要文件上传这个请求响应完毕之后,临时文件会被自动删除,那么如何将文件保存下来呢,这就需要用到下面两个小节的内容了。

⑤、小结

2、本地存储(很少使用)

①、实现思路

 

②、实现步骤

Ⅰ、将文件存储在服务器的磁盘目录中:E:\\images

Ⅱ、Postman测试:

发送请求:

Ⅲ、优化(解决上传文件名重名问题):

构造唯一的文件名(不能重复):uuid(通用唯一识别码,本质上是一个长度固定且唯一的字符串)

③、默认文件上传大小

在SpringBoot中,默认文件上传大小最大为1M

修改配置文件(Application.properties):

3、阿里云OSS(对象存储服务)

①、阿里云简介

②、对象存储服务(OSS)

③、使用第三方服务的通用思路

准备工作 -> 参照官方SDK,编写入门程序 -> 案例集成OSS

④、第三方服务 -- 准备工作

创建Bucket:

获取AccessKey(秘钥):

创建AccessKey:

⑤、第三方服务 -- 参考SDK,编写示例

官方文档Java版本: OSSJavaSDK的多种安装方式介绍_对象存储-阿里云帮助中心

上传文件流示例代码

我们只需要将相关内容改成自己的即可,不需要更改核心代码

对应修改后:

⑥、第三方服务 -- 案例集成OSS

实现思路:

实现步骤:

示例:

Ⅰ、引入阿里云OSS上传文件工具类(AliOSSUtils.java):

Ⅱ、修改Controller方法:

⑦、小结

这里只说本地存储的缺点,而不说云存储的感觉有些不太客观,像云存储也存在其自身的缺点,像(需要有联网环境、收费、云服务一旦崩掉,资源无法访问等)

三、修改员工

1、查询回显

①、实现思路

②、代码实现

具体实现步骤:

Ⅰ、Controller方法(getById):

Ⅱ、service方法:

service接口:

service实现类:

Ⅲ、Mapper方法:

Ⅳ、Postman测试:

2、修改员工

①、实现思路

②、代码实现

具体实现步骤:

Ⅰ、Controller方法:

Ⅱ、service方法:

service接口:

service实现类:

Ⅲ、Mapper方法:

XML映射文件:

Ⅳ、Postman测试:

数据库表:

四、配置文件(Application.properties)

1、问题分析(阿里云OSS配置信息的硬编码问题)

问题解决:(@Value:外部配置的属性注入)

示例:

2、参数配置化

将所有的配置参数交给application.properties配置文件统一管理:

3、yml配置文件(推荐使用)

①、配置格式

application.yml

常见配置文件格式对比:

②、配置文件优先级

③、yml配置文件的基本语法

④、yml数据格式

示例:

⑤、yml配置文件替换properties

示例:(配置完成后,将properties文件备份一下,即可将其从项目中删除)

⑥、小结

4、@ConfigurationProperties

①、问题分析

②、解决方案(@ConfigurationProperties(prefix = "aliyun.oss"))

解决办法:将其打上注解@ConfigurationProperties(prefix = "aliyun.oss"),让其实现自动注入:

示例:

Ⅰ、创建AliOSSProperties.java实体类),将其打上@ConfigurationProperties注解:

Ⅱ、在AliOSSUtils.java文件中,实现AliOSSProperties对象的自动注入:

③、解决警告

解决警告办法:(可选操作)

在AliOSSProperties.java上加入注解出现了以下警告:

该警告就是提醒我们还缺少了一项依赖:

这项依赖的作用就是会自动识别被@ConfigurationProperties这个注解标识的这个bean对象,然后在配置文件当中提示与这个bean对象的属性名相对应的名字

 

④、@ConfigurationProperties与@Value

@Value:单个注入

@ConfigurationProperties:批量注入