9月11日
1、格式注解 @NotBlank字符串不能为空
这一类得注解都在变量上,会自动检测字符串的格式是否符合要求。
@validated添加了才能使得格式注解生效
2、完成了Springmvc的学习
简单的看了SSM框架的整合
3、学习了上周力扣周赛的解法
4、学习了异常处理
9月12日
1、补了一道差分和一道全排列枚举的题
进一步加强自己的动态规划思维
状态压缩DP,因为3×3每一次的决策对全局都有影响所以考虑采用动态规划
2、学了SSM框架整合和boot框架
德鲁伊和boot3存在兼容性问题
3、接了一个横向
4 、boot整合MVC
5、yaml配置文件,类似树形结构,十分好用
9月13日
1、继续学习了mybatis-puls
2、悲观锁和乐观锁
悲观锁就是很悲观,数据并发获取时先认为会出现问题,对数据进行保护,而后进行修改
乐观锁认为并发冲突不会那么巧,先修改了,改完了看一下校验一下对不对就OK
3、@Version乐观锁注解 时间戳进行对比
4、全表更新删除防御 通过拦截器实现
5、程序跑起来了,项目开了个小头,完成了课程作业
9月14日
1、上课+体检
2、cloud分了六大组件,分别是
服务注册发现
统一配置管理
服务远程调用
统一网关路由
服务链路监控
流控、降级、保护
3、继续完善项目
首先进行yaml文件配置,
其次进行boot和数据库兼容配置
然后对applicaiton配置拦截器和mapper组件路径注册
其中拦截器配置SQL分页,乐观锁以及全表保护
utils文件夹包含了所有的返回数据类型以及结果统一化,utils一般用于存放自定义函数的包
逆向工程,并且配置各种mybatis-plus注解,例如主键
4、序列化和反序列化
private static final long serialVersionUID = 1L;
如果说不设置这个字段,JVM默认也会取生成这个字段,序列化就是对象封装好传输出去,
反序列化就是把传过来的流给转化成对象,如果说这个UID对应不一样的话,
说明类被更改了,类无法成功转化,那么就会造成传过来类不一致问题,
这个机制旨在保护JAVA类的一致性
5、jwt和token技术
token和jwt之间是接口和实现类的关系
9月15日
1、继续完善微头条项目
分页器需要进一步学习
2、Eurka注册中心,协调不同的微服务
负载均衡要用服务名去代替IP和端口,然后加一个
@LoadBalanced
根据application的名称去查询负载均衡。
getserver就是实现负载均衡的函数
IRULE就是默认的负载均衡策略,round robin轮询
可以通过配置文件方式和注解方式
3、Ribbon饥饿加载
默认懒加载,第一次建立负载均衡控制,而饥饿模式下则会立刻创建,降低第一次的访问时间
通过配置饿加载的名称,所以application的名字在负载均衡中有着极为重要的作用
4、另一个注册组件Nacos
开了一个头
5、docker
9月16日
1、sql语句一个字段后面可以跟别名
例如 new_headline h 可以直接把前面的名字别名成h,在sql语句任意地方进行使用
2、使用mybatis-plus的命令例如遇到selectbyid这种,要在pojo上加tableid不然会报错
3、拦截器放在启动类的目录或者子目录下可以不用加enablemvc
4、周末课比较多
5、简单学习完了docker
6、初识MQ
9月17日
1、完成了微头条项目,前后端调试完毕(各种BUG非常耗时间)
sql数据库里自带了timestampdiff可以用于计算时间差
2、学习Nacos
3、打了一场快手周赛,一道模拟题被卡,深刻的认识到了自己是一个菜,又是2题呜呜
4、学了一些git的内容
5、继续学了rabbitmq
6、学习Feign,并学习通过http连接池进行性能调优
7、简单的了解微服务整体的构架
从客户发出请求到进入对应的微服务对应的web服务器