今天开始Spring MVC相关的课程学习了。加油。拼搏人!如果计划顺利的话,最晚明天就可以开始敲项目代码。
Restful风格
SpringMVC返回数据给前端的三种方式:Model,ModelAndView,ModelMap。
接受请求端传来的数据方式:
- 注解@RequestParam
- 直接Object object (前提:对象字段必须一一对应,否则为null)
2021年3月5日 15:51:30 :大致上来说SpringMVC就先放着了。直接开始MybatisPlus学习。
主键生成策略
AUTO:自增策略
NONE:无主键
INPUT:手动输入
ASSIGN_ID:雪花算法
ASSIGN_UUID:不含中划线的UUID
雪花算法:
SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。
核心思想:使用一个 64 bit 的 long 型的数字作为全局唯一 id。
- 最高位是符号位,始终为0,不可用。
- 41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。
- 10位的机器标识,10位的长度最多支持部署1024个节点。(5位作机房,5位作机器。或自行调整)
- 12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4096个ID序号。
优点:
毫秒数在高位,自增序列在低位,整个ID都是趋势递增的。
不依赖数据库等第三方系统,以服务的方式部署,稳定性更高,生成ID的性能也是非常高的。
可以根据自身业务特性分配bit位,非常灵活。
缺点:
强依赖机器时钟,如果机器上时钟回拨,会导致发号重复或者服务会处于不可用状态。
@component注解
@Controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
@Service 服务(注入service)
用于标注服务层,主要用来进行业务的逻辑处理
@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
@Component
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
注解总结
@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理
@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能
@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
@Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。
@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。
自动填充功能。gmt_modified,gmt_create.
- 在需要自动填充的字段上加@TableField注解。
- @TableField括号中标注fill = (何时插入)如:fill = FieldFill.INSERT表示插入时自动填充。
- 编写handler继承metaObjectHandler并重写insertFill和updateFill方法。例如:
//插入时更新gmt_create字段和gmt_modified字段 @Override public void insertFill(MetaObject metaObject) { System.out.println(" ==> start insert fill ...."); this.strictInsertFill(metaObject,"gmtCreate",Date.class, new Date()); this.strictUpdateFill(metaObject,"gmtModified",Date.class, new Date()); } //更新时只更新gmt_modified字段 @Override public void updateFill(MetaObject metaObject) { System.out.println(" ==> start insert fill ...."); this.strictUpdateFill(metaObject,"gmtModified",Date.class, new Date()); }
今日学习总结(看完了MYBATISPLUS的学习视频):
- 雪花算法
- @component算法
- 粗略了解乐观锁(version)。
- 伪删除is_deleted
- gmt_create 以及 gmt_modified
- 数据的接受与返回。
明日计划:
- 修改简历
- 了解SPRING BOOT自动装配原理
- 学习spring boot
- 试着将毕设代码后台换成spring boot本地调试通过。