【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:批量注入