lombok工具
首先将lombok的依赖引入
Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。
日志操作
自定义日志打印
有以下两步:
- 在一个类中先获取到日志打印对象(日志框架提供的日志对象,而日志加已经默认集成到 Spring Boot 当中了)。
- 使用日志对象提供的方法实现日志的打印。
通过 Logger 类来得到日志对象,获得slf4j 提供的日志对象:
private final static Logger log = LoggerFactory.getLogger(UserController.class);
把类名传进去,是为了更好的查看日志输出的时候,是从哪个类里面输出的。然后就可以在方法里面,使用日志对象提供的打印方法来进行日志打印了。
⽇志对象的打印⽅法有很多种(info,error,warn,trace,debug)
@RestController
public class UserController {
//1、先得到日志对象,一定要设置当前类的类型
private final static Logger log = LoggerFactory.getLogger(UserController.class);
@RequestMapping("/log")
public void log() {
//2、使用日志对象提供的打印方法进行日志打印
log.trace("track 日志级别最小的一种,少许日志");
log.debug("debug 调试阶段打印日志,调试日志");
log.info("info 普通的打印信息,默认的日志级别");
log.warn("warn 警告日志");
log.error("error 错误日志");
}
}
运行结果如下
使用lombok框架记录日志
在类上加上@Slf4j 注解,系统会自动生成一个日志对象,对象名就叫log。直接调用日志对象的方法即可。
分页查询
前段传递两个参数给后端
- 当前页码:page
- 每页展示记录数:pageSize
后端返回数据列表和总记录数将其封装成分页Pagebean实体对象返回给前端。
@Data
@NoArgsConstructor
@AllArgsConstructon
public class PageBean {
private Long total;//总记录数
private List rows;//数据列表
}
Requestparam属性值defaultValue可以设置接收前端参数的默认值
@GetMapping("/emps")
public Result page(@RequestParam(defaultValue="1") Integer page){};
文件上传
前端发送
1.定义表单项
2.提交方式设置为post
3.表单的enctype属性设置为multipart/form-date。
boundry是表单数据的分隔符。
服务端接收
普通的表单项跟之前一样接收,提交的文件需要通过Spring当中的MultipartFile进行接收。
上传的文件只会产生一个临时文件,当请求响应结束之后就自动删除了,那我们如何来保存接收到的文件呢?
1.本地存储
常见方法:
调用MultipartFile 的transferTo方法进行存储
@PostMapping ("/upload")
public Result upload (String username , Integer age , MultipartFile image) throws Exception {
log.info("文件上传:{),{),{)", username, age, image);
//获取原始文件名
String originalFilename = image.getOriginalFilename ();
//将文件存储在服务器的磁盘目录中 E:\images
image.transferTo(new File ( pathname: "E:\\images\\"+originalFilename) ) ;
return Result. success () ;
为了防止文件名重发,可以使用UUID
文件大小默认最大为1M,可以通过配置文件进行修改:
缺点:
- 无法部署到服务器,前端无法访问
- 磁盘可能会出现问题
2.云存储
通用思路:
1.准备工作
2.参照官方SDK编写程序:SDK是软件开发工具包,包括依赖(JAR包)代码示例等
3.集成使用
这里我们使用阿里云对象存储OSS服务来做例子。
使用参考官方文档即可。
上传完毕之后,会把每一个上传的文件分配URL地址,把URL返回给前端,前端就可以访问到数据
配置文件
参数配置化
项目中的参数可以进行集中管理定义在配置文件中。
格式为key=value。 key可以随便定义,value就是要使用的参数。
spring当中的 @Value注解,用来注入属性
yml配置文件
yml配置文件层次结构更清晰
配置文件优先级
SpringBoot还支持ymal的配置文件,他的格式跟yml差不多,三个配置文件的优先级为properties>yml>yaml
Springboote还支持java系统属性配置和命令行参数进行属性配置格式分别为:-D(key=value)
和--(key=value) 命令行参数>系统属性配置>配置文件
当打包好的jar包要运行时配置属性时,可以执行java指令的时候进行配置
SpringBoot简化操作
接口方式简化
@GetMapping("dept")=@RequestMapping(value="/dept",method=get)
路径抽取处理
当所有接口中的路径有公共路径时,可以进行抽取到类上
分页查询简化插件:PageHelper
多配置属性注入简化注解@ConfigurationProperties
当我们要注入的属性值过多时,可以使用@ConfigurationProperties简化操作
1.在要注入的类上加上注解,通过prefix属性指定前缀@ConfigurationProperties(prefix= "")
操作步骤:
- key名=实体类名
- 指定前缀
- 引入依赖(可选):能将配置项进行提示