本节内容是通过定时任务定时检查租约是否到期。SpringBoot内置了定时任务,具体实现如下。
启用Spring Boot定时任务
在SpringBoot启动类上增加@EnableScheduling注解,如下
@SpringBootApplication
@EnableScheduling
public class AdminWebAppl...
ViewAppointment实体类中的appointmentTime字段为Date类型,Date类型的字段在序列化成JSON字符串时,需要考虑两个点,分别是格式和时区。本项目使用JSON序列化框架为Jackson,具体配置如下
格式
格式可按照字段单独配置,也可全局配置,下面分别介绍
单独配置
在指定字段增加@JsonFormat注解,如下
@Js...
collection一对多的关系
association是一对一的关系
https://www.cnblogs.com/monianxd/p/16477331.html
看图,两段代码有什么不同
因为错误的使用了and的连接方式,导致语法错误,找了很久才找出来。
这两段代码的区别在于在条件判断为真时添加 and 的位置。
第一段代码中,在条件判断为真时,在条件前添加了 and ,例如: and ai.province_id = #{queryVo.provinceId} 。
第二段代码中,只有在第二个及后续的条件判断为真...
1. 项目概述
1.1 项目业务概述
尚庭公寓是一个公寓租赁平台项目,包含移动端和后台管理系统,其中移动端面向广大用户,提供找房、看房预约、租约管理等功能,后台管理系统面向管理员,提供公寓(房源)管理、租赁管理、用户管理等功能。下面分别介绍两端的具体业务功能。
1.1.1 移动端
移动端的线上体验地址为:http://139.198.127.41:8002...
BeanUtils.copyProperties(Object source,Object Target)是由Spring提供的方法,用于讲一个给定的源Bean的属性值赋值给目标Bean之中,
只要属性匹配甚至源类和目标类都不用匹配
例如:
//使用Spring的eanUtils.copyProperties将数据赋值派生出来数据多的类
...
ifnull (cc.cnt,0),
如果查询结果值为null返回,后的0
P114 在编写插入 配套列表 标签列表 杂费列表 new 的实体类 需要删除 '@Builder' 或者添加 @AllArgsConstructor @NoArgsConstructor
如果不进行删除或添加就有
'ApartmentLabel(java.lang.Long, java.lang.Long)' is not public in 'c...
创建全局异常处理类
全局异常处理
按照上述写法,所有的Controller层方法均需要增加try-catch逻辑,使用Spring MVC提供的全局异常处理功能,可以将所有处理异常的逻辑集中起来,进而统一处理所有异常,使代码更容易维护。
具体用法如下,详细信息可参考官方文档:
在common模块中创建com.atguigu.lease.common.ex...
7.2.2.8 图片上传管理
由于公寓、房间等实体均包含图片信息,所以在新增或修改公寓、房间信息时,需要上传图片,因此我们需要实现一个上传图片的接口。
1. 图片上传流程
下图展示了新增房间或公寓时,上传图片的流程。
可以看出图片上传接口接收的是图片文件,返回的Minio对象的URL。
2. 图片上传接口开发
下面为该接口的具体实现
配置Minio C...
视频教程:
https://www.bilibili.com/video/BV1At421K7gP/?p=98&spm_id_from=pageDriver&vd_source=2f88c79898ac6db8b9db2d2439d8c6b0
下面介绍一下每个环节的类型转换原理
WebDataBinder枚举类型转换
WebDataBinder依赖于Converter实现类型转换,若Controller方法声明的@RequestParam参数的类型不是String,WebDataBinder就会自动进行数据类型转换。SpringMVC提供了常用类型的转换器,例如String到Integer、S...
在实体类字段上加注解@TableLogic
@JsonIgnore
@TableLogic
@Schema(description = "逻辑删除")
@TableField("is_deleted")
private Byte isDeleted;
插入或更新数据时,有三个值需要设置
逻辑删除
is_deleted,它可以在数据里设置默认值为零,就无需手动设置了。
创建时间
createTime,使用自动填充功能
更新时间
updateTime,使用自动填充功能
第一步需要在实体类的属性上加注解@TableField
@Data
public class BaseEntity implements S...