type
status
date
slug
summary
tags
category
icon
password
参考课程:
【黑马程序员 JavaWeb开发教程】
@ZZHow(ZZHow1024)
综合案例-文件上传
- 简介
- 文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。
- 文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。
- 前端页面三要素
- method="post"
- enctype="multipart/form-data"
- type="file"
- 本地存储
- 在 application.properties 中配置上传文件大小限制
- MultipartFile 中的方法
String getOriginalFilename();
//获取原始文件名void transferTo(File dest);
//将接收的文件转存到磁盘文件中long getSize();
//获取文件的大小,单位:字节byte[] getBytes();
//获取文件内容的字节数组InputStream getlnputstream();
//获取接收到的文件内容的输入流
- 阿里云 OSS
- 阿里云:阿里巴巴集团旗下全球领先的云计算公司,也是中国最大的云服务提供商。
- 阿里云 OSS:
- 第三方服务-通用思路
- SDK:Software Development Kit 的缩写,软件开发工具包,包括辅助软件开发的依赖(JAR 包)、代码示例等,都可以叫做 SDK。
- 阿里云 OSS-使用步骤
- Bucket: 存储空间是用户用于存储对象(Object,就是文件)的容器,所有的对象都必须隶属于某个存储空间。
- 阿里云 OSS-集成
- UploadController
- 接收上传的图片
- 将图片存储起来(OSS)
- 返回图片访问的 URL
- 步骤
- 引入阿里云 OSS 上传文件工具类(由官方的示例代码改造而来)
- 上传图片接口开发
阿里云对象存储OSS(Object Storage Service) ,是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。
准备工作 → 参照官方 SDK 编写入门程序 → 集成使用
注册阿里云(实名认证) → 充值 → 开通对象存储服务(OSS) → 创建 Bucket → 获取 Accesskey(秘钥) → 参照官方 SDK 编写入门程序 → 案例集成 OSS
综合案例-修改员工
- 查询回显
- 思路
- Browser
- EmpController
- 注解:@GetMapping、@PathVariable
- 接收路径参数 id
- 调用 service 方法查询数据
- 响应
- EmpService
- 调用 mapper 接口查询数据
- EmpMapper
select * from emp where id = ?;
- Database
- 修改员工
- 思路
- Browser
- EmpController
- 注解:@PutMapping、@RequestBody
- 接收请求参数并封装
- 调用 service 方法执行修改操作
- 响应
- EmpService
- 补充基础数据
- 调用 mapper 接口修改数据
- EmpMapper
update emp set username = ?, name = ?, gender = ? …where id = ?;
(动态 SQL 实现)- Database
Spring Boot配置文件
- 参数配置化
- 可以将配置信息(如阿里云 OSS 的配置信息)统一在 application.properties 中配置
- 使用 @Value 注解进行属性注入
@Value 注解通常用于外部配置的属性注入,具体用法为:
@Value("${配置文件中的 key}")
- YAML 配置文件
- SpringBoot 提供了多种属性配置方式
- application.properties
- application.yml(与 yaml 相同)
- application.yaml(与 yml 相同)
- 常见配置文件格式对比
- XML:臃肿
- properties:层级结构不清晰
- YAML(yml / yaml):简洁、数据为中心
- YAML 基本语法
- 大小写敏感。
- 数值前边必须有空格,作为分隔符。
- 使用缩进表示层级关系,缩进时,不允许使用 Tab 键,只能用空格(IntelliJ IDEA 中会自动将 Tab 转换为空格)。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。
- # 表示注释,从这个字符一直到行尾,都会被解析器忽略。
- YAML 数据格式
- 对象 / Map 集合:
- 数组 / List / Set 集合:
- @ConfigurationProperties 注解
- 自动注入的前提
- 有 Get 和 Set 方法(@Data 注解)
- 交给 IOC 容器管理,成为 Bean 对象(@Component 注解)
- @ConfigurationProperties 注解并配置 prefix 属性
- 示例:
- 消除红色警告(可选)
- 添加 Maven 坐标
- 该依赖会自动识别被 @ConfigurationProperties 标识的 Bean 对象,并在配置项中进行提示。
- 在配置文件中可以使用驼峰命名也可以使用提示的横杠命名。
- @ConfigurationProperties 注解与 @Value 注解的对比
- 相同点
- 都用来注入外部配置的属性的。
- 不同点
- @Value 注解只能一个一个进行外部属性的注入。 @ConfigurationProperties 注解可以批量将外部的属性配置注入到 Bean 对象的属性中。
“Spring Boot Configuration Annotation Processor not configured”