点进博客的文章,能看到的内容

image.png
id都没有获取到
vo类中id类型写错了,应该是Long,写成了String。

使用线程池,更新阅读数

评论列表

ms_comment
两级:对文章的评论 对评论的评论(children) 再往下没了,第一层 toUser为null,第二层toUser为第一层的人
image.png

mybatisPlus-extends BaseMapper
image.png
pojo 不用
通过mapper 以后使用mapper 多了它的增删改查方法

评论

评论就是把文字保存一下,但是评论一定要当前用户登录,所以要添加到登录拦截器中(在WebMVCConfig中)
image.png

在controller中写了请求以后:
点击评论,会显示未登录:
image.png
image.png
写好相应方法后,评论成功,但是需要刷新一次才显示,这是前端没弄好。

因为id用的是分布式id,很长 数据库中要把int变成bigint。

注意:bug

因为用的是分布式id,太长了,传到前端时解析不了,导致精度损失。值就不太对了。
解决:在CommentVo的Long上序列化,把id转成String 就不会精度损失。
image.png
成功二级评论
image.png
数据库中 对啊 的 parent_id 对应上了 此言得之的 id,没发生精度损失。
image.png

写文章

核心功能
点击进入编辑页面
写文章需要 三个接口:

  1. 获取所有文章类别——文章分类
  2. 获取所有标签——文章标签
  3. 发布文章

image.png

没有查询条件的,直接在select的括号里new一个LambdaQueryWrapper就可以了。

小问题解答
刚写完的文章还没有对应的id,通过insert插入后,就可以生成文章id了。且,不需要查询语句去获得id,因为ybatis提供了两种insert方法,可以直接返回主键。
只需在实体类中有主键的get、set方法,在impl或controller层直接调用xx.getId(),即可获得本次插入的主键并返回。
因此,下面方法可以得到articleId。
image.png

普通的set方法设置,使用pojo对象。
对pojo的增删改查使用其对应的xxmapper。
image.png

AOP日志(技术亮点)

通过日志看参数,知道错哪里
不改变原有方法:用AOP
需求:对文章的列表 记日志
image.png
所有注解都加了以下三个注解:(所以创建自己的注解就要copy过来)
image.png
用到了AspectJfastjson

文章图片上传

markdown的图片访问路径像这样image.png,是本地的目录,网络上访问不了。
所以要有上传图片的功能

字节数组上传 去 七牛云里找 https://developer.qiniu.com/kodo/1239/java
image.png
image.png
账号密码:
image.png

image.png

image.png
存储空间名字bucket:cbmszlu

测试域名:
qx79dhjxp.hd-bkt.clouddn.com

image.png

视频老师的已经有一个自己的备案了:(我没有,就用测试域名)
image.png
修改url代码:
image.png
自己配置accessKey和accessSecretKey:(需要七牛账号下的一对,类似账号密码)
image.png
我的密钥:配置到配置文件中
AK:ibWuIjQmte-TguK6kkK2sy3ijC5_O0vuckAhmuPD
SK:kvJCoO25Mub-f32J9phjFfJl7bpcDXNx3tLIr-yc

Region对象选择华东
image.png
image.png