Java工具类

全局异常类
首先创建一个枚举类ResponseCodeEnum.java
public enum ResponseCodeEnum { |
创建AppException.java
自定义的异常类,传递错误码与错误消息
public class AppException extends RuntimeException { |
创建GlobalExceptionHandler.java
//用于异常处理、数据绑定、全局模型数据 |
RedisUtil.java
import org.springframework.beans.factory.annotation.Autowired; |
上传图片
本地上传
本地路径方式
- 在Resource目录下有一个upload.html文件,和一个static文件夹,static下又有一个images文件夹,如下图
- upload.html
这里主要就是一个form表单,用来提交数据,但是要注意的是我这个表单用了post和enctype=”multipart/form-data”,以及input的类型是file
|
- UploadController
为了方便演示,我把业务都放在controller,,首先我们要先分析文件上传有几步
- 文件校验(包括但不限于,图片的大小、图片的类型、图片是否为空、上传的是否是文件等)
- 将图片重命名,图片重命名又可分为以下几步
- 获取原来文件的后缀名,可以使用
file.getOriginalFilename()
获取原来的文件名 - 生成一个随机的新文件名,这里可以使用
UUID.randomUUID()
- 把新名称和原后缀名拼接起来作为新的文件名
- 获取原来文件的后缀名,可以使用
- 把图片上传的指定的目录下,我们这里讲的是Resource,就以Resource为例
new ApplicationHome(this.getClass())
可以获取当前程序运行的主页- 我们知道Java程序都是运行的.class字节码文件,所以
getDir()
获取文件夹位置其实是.class字节码文件的位置,需要使用getParentFile()
两次回到项目的主目录 - 获取到主目录的绝对路径拼接上从这里到Resource下的images
- 最后通过
file.transferTo(new File(path));
把文件上传到Resource下的images目录,并且返回一个url地址
package com.wang.upload.controller; |
云服务器上传
OSS对象存储
创建Bucket
- 名称:随便起
- 地域:想你的服务器在哪就选哪个(也是随便选)
- 存储类型:标准存储
- 冗余存储:关闭
- 版本控制:关闭
- 读写权限:公共读写
代码
- 导入依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>新建一个工具类UploadUtil在util包下
需要获取几个参数
阿里域名(开头加https://,结尾加/)
地域节点(开头加http://)
accessKeyId
accessKeySecret
生成一个新的文件名
使用OSS客户端对象上传图片返回url
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.UUID;
public class UploadUtil {
//阿里域名(开头需要https://,结尾要/)
public static final String ALI_DOMAIN = "https://桶名.oss-cn-shanghai.aliyuncs.com/";
public static String UploadImg(MultipartFile file) throws Exception {
// 生成文件名
String uuid = UUID.randomUUID().toString().replace("-", "");
String originalFilename = file.getOriginalFilename();
String ext = "." + FilenameUtils.getExtension(originalFilename);
String fileName = uuid + ext;
//地域节点(开头需要http://)
String endpoint = "http://oss-cn-shanghai.aliyuncs.com";
String accessKeyId = "";
String accessKeySecret = "";
//OSS客户端对象
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(
"", //仓库名
fileName, //文件名
file.getInputStream()
);
ossClient.shutdown();
return ALI_DOMAIN + fileName;
}
}controller:
public class UploadController {
public String upImg(MultipartFile file) throws Exception {
return UploadUtil.UploadImg(file);
}
}upload.html:
<form action="/upImg" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="上传图片">
<input type="submit" value="上传">
</form>
文件大小报错异常
在SpringBoot的application.yml中配置
spring: |
代码生成器
使用MyBatis Plus
,安装依赖
<!-- mybatis-plus --> |
CodeGenerator.java
import com.baomidou.mybatisplus.generator.FastAutoGenerator; |
在Json格式中插入当前时间
// payload 为JSON格式数据 |
解析JSON格式数据
JSON格式数据,通过key,获取value
Object massage = redisUtil.lGetIndex("sensor", 0); |
启动banner
${AnsiColor.BRIGHT_YELLOW}${AnsiStyle.BOLD} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Utopia🛸!
评论
匿名评论
✅ 你无需删除空行,直接评论以获取最佳展示效果