Featured image of post 参与网络课程评价与总结2023

参与网络课程评价与总结2023

2022参与网络课程仅黑马JavaWeb路线全套 + JVM + Git等, 不记录

里面内容已经转储对应页面, 这里仅记录

这里仅抽取网课评价 + 记录内容, 具体网课的输入最后会转换为两个文档- 评价(合并) + 具体精华内容(吸收入各个文档内)

个人API - Key等信息部分删除, 部分已失效无需删除

2023学习的苍穹和Redis点评事实上延续到了2024作为项目和复盘任务, 于是不在此记录

# 非正规入门

# 智障网课

盗版录屏网课, 2023.3出厂, 2023.10学习

很明显是教室网课录屏, 有人在上课

# 评价

其实和黑马这类差不了多少, 顶多一些知识点讲的细了一点

那我不如去看文档或者直接在工作场景中找问题, 也比你这看教程来得主动性强呢

真的没什么补充, 都是细碎的点, 只需要自己之后遇到了记录一下就好.

很明显 没有什么流程设计, 讲的很随意


但是可以记录一下流程知识点, 截点图之后解密和按图索骥是非常好的材料也能弥合和培训班学员的信息差, 同时也能感受到培训班的情况

SB+MP一共16个40分钟的网课(音质很烂没办法太多快进), 也就是需要16小时, 两天全部的产能, 按照当前的分配标准大概是要3日完成. 简单的跳过, 但是一定要做到真的能出成绩, 这便是对于CRUD的试炼了. 也是我对项目经验的回答: 我能够用这份经验完成基本项目经验的积累, 那么就没有无从获取这一说法.

# 简单记录

在空项目中创建了SSM基础工程

首先导入依赖

但是发现好像是用sevlet做的? 这叫什么SSM? 是什么时候的老黄历了

如果太落后了就算了. 白费心机 ; 这个只有部分的内容, 很明显有一些是被删除了, 前后接不上.

因此只能够看看

询问技术栈问题: Newbing - SpringbootSSM使用类似HttpServletResponse在Controller层传递参数来控制跨域请求吗?如果不是, 那么这是不是Servlet整合Springboot的技术栈? 那么在最新的SSM框架中如何实现跨域请求请求?

哦哦,看来不是, 不能一看到Servlet就觉的是旧知识然后开始产生散漫的心态了.

这个是新知识.那么记录下来

我发现这个网课视频内的差不多一半的内容都是在浏览器和前端部分进行调试和看Chrome的执行情况, 知识点实际上没有讲很多, 我觉的这样效率比较低, 知识密度也转化为一般的学校课堂了. 我的建议是像任务布置- 问题解决这样来.(怎么开始盘算着补习班的事情了??)

现场调试占用的时间太多了, 本该用大量时间在讲解原理上

因此, 对于不感兴趣的前端(除了Axios需要再看看外)其他内容标记以下大概的实现然后自习即可

情报中最关键的一点就是事件, 事件的细节无需在意.

我明白了, 知道它在哪意味着我可以对其进行探索, 知道怎样做和在哪里反而导致情报的冗余

同样的, 系统建议专业版而不是家庭版避免权限不足的问题. 但是将来还是先用正版为主

这个没事, 缺啥补啥, 直接装就是

但是这个网课有前后端一起展示出来教授你怎么看前后端然后独立完成接口编写, 也就是全栈的技能, 这个挺好

# 租借军火库SSM + JavaWeb

笔记列表

友人租借的网课视频, 小滴课堂JavaWeb + SSM, 2021的比较旧版技术栈

# 评价

网课这个其实算是全栈了, 前端的东西不必学, 看看即可

不需要完全自己实现, 采用其他现成的项目观察即可. 已经过时了这些技术

特别是那些细碎的开发, 而且这个网课很老了, 不能作为学习前端的东西

只能说亏了, 这类二线网课性价比太低

# 个人记录

  • 注意有一些字符(\t)从外观上看起来是没问题, 但是事实上是乱码, 建议手动控制缩进

  • 根据前端传输地址, 将整条请求网址复制到Controller方法下面之后参照着进行分割写参数接受的方法流程

  • 忽略Controller业务中的内容, 而是用日志输出一下看看下面的Service能不能正常运行输入信息

  • 学到了, Nginx因为是开箱即用, 因此大多数情况下不要自己去配, 直接拿就好了

    为之前耍小聪明的行为感到不齿…

    指自己下载然后拼装入Nginx, 白白浪费时间

# 正规入门

这里主要是项目, 基础技术栈不必记录了

# 硅谷校园

# 评价

少见的只需要SSMMP的基础项目, 应该是黑马外卖的竞品, 和黑马的两个网课一起干了

我的评价是比不上黑马一点, 很粗, 没有诚意前端都没有, 大概不是主打菜

只是简单小项目罢了

由于没有前端, 因此采用Postman来发请求

之后找找大佬的前端页面练习?

不需要了, 现在看来这个直接用若依做前端即可, 项目本身没什么特点, 就是入门测试

# 链接

CSDN1附资源

CSDN2

# 瑞吉外卖

# 评价

真不错,少有的单体项目了(没有微服务)

有些地方没有很好的遵守restful原则

# Bugfix

resource只保留yml文件

nginx.conf需要在第1行确认user为root才能使用

统计所有端口号,令防火墙放行该端口或者放行主机

主从同步那玩意我搞了整整一天……我真心建议这一块去其他地方专门补一下,如果你一遍过当我没说.

问题是 Slave_IO_Running: no
Slave_SQL_Running: Yes

原因是我的两个虚拟机是直接克隆的 而数据库会有一个唯一的uuid,直接克隆导致了uuid重复 只需修改uuid即可

问题二
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Could not find
,这个我解释不清楚 直接百度搜这个异常能解决

问题三

当一切看起来都ok之后用xiaoming这个用户登录数据库却不能新建数据库.
我给换成了root 但又不能实现同步了 原因是权限没开 在主表开个权限

grant replication slave, replication client on . to 'root'@'数据库地址' identified by '数据库密码';

到这才终于成功.

如果是使用MybatisPlus代码生成器

实体类里面加上@TableField(fill = FieldFill.INSERT)和@TableField(fill = FieldFill.INSERT_UPDATE)注解

不然实现后面的功能,打断点调试的时候 自定义元数据对象处理器会起不了作用,无法自动填充导致数据库抛500异常,想着偷一下懒,没想到调试浪费了我20分钟,真是划不来,也算是积累经验了,哈哈哈哈

# 资源

项目

学习

UI转Vue

# 瑞吉外卖个人笔记

各种原因跳过部分: Mysql主从读写分离 + Nginx反向代理 + 负载均衡, 前端不太懂, 记录下后面看看; 相信后人的智慧

以上写于2023, 12月2号, 现在看来所谓的"后人" 只会说 “兄弟, 别回头”

# 要点

公共字段自动填充

分类信息分页查询

全局异常处理器类

# 瑞吉外卖大佬笔记

如果你后面想做逻辑删除​,要在模型类中加入isDelete​字段,黑马给的资料的模型类里没有逻辑删除属性,但数据表里有

全套大佬笔记链接

# 苍穹外卖

(瑞吉升级版, 技术栈变了)

2023

苍穹外卖的业务更加真实完整,用户端改为微信小程序,登录改为了微信登录,加入了统计报表,来单提醒,客户催单,订单管理等功能,业务实现了闭环. 技术选型更加丰富和实用. 可以认为是增强版瑞吉外卖

比较新, 可能大佬的笔记资料比较少

苍穹前端稍微摄取了, 挺好

# 抽取

阿里云对象存储使用

sky:
  datasource: #自定义数据源
    driver-class-name: com.mysql.cj.jdbc.Driver
    host: localhost
    port: 3306
    database: sky_take_out
    username: root
    password: 2333
  alioss:
    endpoint: 
    access-key-id: 
    access-key-secret: 
    bucket-name: 
  redis:
    host: 124.70.10.183
    port: 6379
    password: qwe123
    database: 14
  wechat:
    appid: 
    secret: 
    mchid: 
    mchSerialNo: 
    privateKeyFilePath: 
    apiV3Key:
    weChatPayCertFilePath: 
    notifyUrl: 
    refundNotifyUrl: 

# 链接

哔站视频 - 无, 太新了

# 其他

调试地址

微信小程序(废止)

管理员登录 http://localhost/#/login

接口文档 http://localhost:8080/doc.html#/home

项目接口文档/苍穹外卖-管理端接口.html

# 预期

# 复盘

最后使用断点来老牛反刍式的进行练习(联调)

最后处理API接口文档生成内容, 前期先放着 (最后按照成品一锅端)

随时处理/**文档注释

# 未来知识处理

前端课程没有对应的笔记, 但是可以去找大佬的解答

前端封存等复盘时候来(或许因为学校项目这个要延迟一点)

因此本来学完后端了就该全部开始复盘了, 但是这次不能, 这次打算把这个抛出到回家后进行测试

进行二次学习测试.

# 实现

我需要一个写死的版本, 和一个自己实现的魔改的版本

(需要修改前端, 需要等待2月份来训练)

# 完结

2023-12-06 21:35:32

一年的孽缘到此斩断

保存所有状态直到回家慢慢调试

或者观看大佬作品

结果回家了也没用调试过, 放着生利息, 现在赶紧捡起来鼓捣一下做成项目填简历了

# 全局配置

按照原来的项目配置了SB2.7, 而不是3.2, 怕出问题

这次希望能够照着敲顺利实现, 少一些报错

# 热部署

暂停, 为了节约电量(电脑太拉跨了, 省电模式真就大乌龟, i5 11500H)

# 请求路径

  • 管理端发出的请求,统一使用 /admin作为前缀.
  • 用户端发出的请求,统一使用 /user作为前缀.

# 返回R的泛型控制

  • 如果是需要返回具体数据, 就设置为具体数值
  • 如果完全不涉及到具体数据返回, 那么就不会用泛型(我还是加上Object防报错?)

其实没必要去跟随着IDEA的报错管理, 这些都是可以忽略不计的东西

真正应该引起注意的是项目

# 登录

设置token过期时间为3天, 不然原来两个小时就要重新生成一次令牌烦死了

使用admin用户登录重新获取token,防止token失效

# 约定

自动填充的时候需要将核心对象放在第一位, 方便获取

最好最后再来优化代码质量, 因为由于学习时候跟上进度使用的反复导入的覆盖问题

# Key- Fake账户实现访问鉴权

SKfake显示名称 SpadeKFake登录名称

bucket Name

sktlsgbucket

登录密码

AccessKey ID

AccessKey Secret

已隐藏

# 图片资源

本地上传Bucket后, 记得修改对应数据库的对应地址(但是没什么意义, 因为SQL是不保存的)

最后回去的时候调试罢(1月) 好看点

# Redis

个人虚拟机

开启Redis

Redis启动

redis-server /usr/etc/WORKSHOP/TOOL/redis-4.0.0/redis.conf

使用10数据库

# Wechat

控制台

4个参数

appid:wx7eca24934e7
secret:224abf53
js_code:0e3Qv2200
grant_type:authorization_code

需要加入白名单, 获得openid 微信号对应的唯一标识

这个只能用一次, 然后就失效了

{
    "session_key":"",
    "openid":""
}

# 支付

支付接口和小程序接口

业务取消

# TIPs

填充测试数据时候, 可以选择没用的手机卡和地址

# 个人笔记

# Day1 联调

Nginx报错 windows安装nginx莫名其妙 CreateFile()权限不够创建问题

原来接口地址没写好也会这样

在部署好Nginx服务器后,输入IP地址和端口号,返回403

其中,xxx是在/etc/nginx/nginx.conf中指定的root目录.

报错根因:直接使用IP地址和端口号访问时,需要指定index,如果未指定,出现该报错.

这时候,可以在nginx/nginx.conf中添加配置:
autoindex on; # 自动索引

自己的环境需要配置反向代理才可以完成联调, 这里网课设置有问题

果然, 查看了接口和后端不一致, 应当是反向代理

由于开发阶段前端和后端是并行开发的,后端完成某个功能后,此时前端对应的功能可能还没有开发完成,
导致无法进行前后端联调测试. 所以在开发阶段,后端测试主要以接口文档测试为主

# Day2 阿里云OSS

需要30分钟准备他们的Bucket: 阿里云竟然还有公开检测功能, 我推到公共仓库还没2秒就被定位到了

好好好, 不过想来也是让人后怕

关于DTO和VO等对象的转换, 可以理解为为了逻辑而操作的

这里没有之前使用String类的拷贝方法自己造, 而是使用了Spring的BeanUtils封装

Oss并没有实现成功, 图片还是所谓的损坏状态

应该是前端的问题, 不可能本地上传都看不到图片的样子

但是OSS确实学到了怎么操作了

是前端的问题, OSS已经找到了!

好!!!

# Day56 Redis× Wechat ×

新版本微信一定是用不了了

备案烦死了, 取消部署上线

开发者工具官网

本地的登陆了

小程序ID

秘钥

可以进入, 那么便试试罢

最后装起来确认登陆了, 但是却没有DB变化, 控制台也没有输出

都装好了, 没有报错, 为什么连请求都没发过来呢

一定是小程序前端代码的问题, 建议自己后面修改(也可能是小程序没有上线被封禁了)

莫怕, 经过调试发现报错是

errmsg -> invalid ip 121.18.90.146 ipv6 ::ffff:121.18.90.146, not in whitelist, rid: 656db174-797c5568-62b50eaf

IP不在白名单范围, 可是我的代理服务器一直变化啊

那么只能够取消代理裸连了吗


不怕, 关闭了白名单即可, 这个就是一个坑啊

倒不如说不知道自己的服务器后台转发问题才是问题根源罢

为了保持后面调试的便利性, 现在暂时不要打开前端, 直接在后台写即可

# Day8 WechatPay

需要获得两个秘钥文件才能开始, 而当前未完成备案取消

内网穿透实现相互调用微信后台

需要计网内容

cpolar控制台

获得临时域名(公网IP)

选择验证,复制令牌

软件控制台使用命令

cpolar>cpolar.exe authtoken  XXXXXXXX

可以启动服务, 获得IP地址

cpolar. exe http 8080

Forwarding找到域名, 右键标记后复制浏览器访问

网址类似

XXXX.cpolar.top/

一般项目部署到服务器后都是要公网IP的, 当前为了解决这个本地项目没有公网IP问题先搞这个隧道穿透实现

不需要开启项目实现, 因为后面不采用微信平台相关工具

# Day9 完善业务

取消调用百度接口, 写死

之后现学即可

# 问题解决

# 弱警告

# 不建议使用字段注入

检查中去掉Injection Warn 字段注入警告

# 未注解的形参重写 @NonNullApi 形参

使用@Nonnull​标记对应参数即可

# 找不到符号大概是自己IDEA疯了

找不到Serial?喂喂喂我好心帮你加上去

清理clean了编译了还是启动失败

直接左上角刷新缓存试试, 依旧失败

可能的原因

其实是idea的索引出现了问题 是因为idea每次启动的时候都会初始化 创建索引 如果之前您对某个类进行了编译 那么该类的索引地址就会发生改变 ,那idea中原来对此类的索引值就发生了改变就会出现引不到的情况

# 长时间未操作数据源报错
discard long time none received connection

在项目的DruidConfig类中新增加:

/*
* 解决druid 日志报错:discard long time none received connection:xxx
* */
@PostConstruct
public void setProperties(){
    System.setProperty("druid.mysql.usePingMethod","false");
}

# Maven报错

Failed to execute goal on project

未解决

# 业务401

401 表示没有得到鉴权, 应该是自己设置的

一看jwt鉴权那里果然是

大概是小程序的bug

微信小程序拿不到list

解决: 暂时全部return 鉴权true

包括员工和管理的

# 插入数据失败

大概是上面鉴权的问题

重大BUG - 问题调试解决 -暂时写死处理

发现是获取User对象没有从线程中获取出来

之前的老Bug, 没有User对象只能手动指定试试了

或者直接在从线程获取的方法里设置写死UserId为对应值

我查看数据库UserID, 在调试时候发现BaseContext无法获得当前ID

后续代码修复 Bing搜索

由于没有可能上线, 这个微信小程序也只有可能我一人使用

因此解决此问题意愿不强(不紧迫)

暂时写死处理, 进一步测试基础代码后进行针对性调试

# 无法完成支付

自己设置支付直接返回空数据, 但是需要进一步深入修改支付逻辑

由于前端已经写死了, 因此这里再怎么做也是徒劳

因此

我需要一个写死的版本, 和一个自己实现的魔改的版本

微信小程序已经弃用, 接下来只能找相关大佬实现了

# MAVEN崩溃

JDK17版本的MAVEN, 虽然一直用1.8也没问题

依赖settings文件

暂时使用公共阿里云仓库

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <localRepository>D:/maven/repo</localRepository>
  <mirrors>
 <mirror>
   <id>aliyunmaven</id>
   <mirrorOf>*</mirrorOf>
   <name>阿里云公共仓库</name>
   <url>https://maven.aliyun.com/repository/public</url>
 </mirror>
  </mirrors>
  <profiles>
 <profile>
  <id>jdk-17</id>
  <activation>
   <activeByDefault>true</activeByDefault>
   <jdk>17</jdk>
  </activation>
  <properties>
   <maven.compiler.source>17</maven.compiler.source>
   <maven.compiler.target>17</maven.compiler.target>
   <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
  </properties>
     </profile>
  </profiles>
</settings>

linux后面部署需要两台服务器,有的朋友会去克隆,尽量不要克隆, 去重新配一个,要不然静态地址修改了也会出现问题

linux用的时候访问不到地址一般都是防火墙没关闭的问题,访问不进去就试试 systemctl stop firewalld命令

每次更新完资源就source一下更新一下配置,再更新打开

springboot现在很多都是3.0版本以上,配置jdk的时候都得配置高一点的版本,1.8已经不支持了,或者是导入maven的时候给springboot降级

# Redis

# 规划

12.10日前先完成理论整理, 之后项目篇等回家了一起做

如果有破坏当前黑马其他课程的内容, 则立刻取消课程

12.16 继续来个实战篇 + 高级理论

使用本地节点搭建

高级篇超远期

# 链接

哔站视频 剩余实战篇

百家讲坛

翻了翻没找到Typora版的笔记,于是自己边学边写,目前刚看完基础篇,笔记也是记到了基础篇,我把typora版的笔记下载链接放在了我博客文章的最上面,方便我看完其他部分后更新下载地址,大家有需要就去下载吧:https://www.oz6.cn/articles/58

项目代码地址:
https://gitee.com/huyi612/hm-dianping

直接运行老师的gitee项目有好多错误,然后自己根据老师gitee的项目和黑马公众号里面的项目重新整合了下,只需改一下配置文件里面的redis,运行不会报错. 整理到P29,大家可以直接P30开干!

链接: https://pan.baidu.com/s/1F82Nxl2LUN1jwi8ewXklcw 提取码: wssy 复制这段内容后打开百度网盘手机App,操作更方便哦

Gitee是完整版本,依赖后期的课程内容,是用来做参考的,不要运行.
公众号资料目前重新上传了,测试是完整可运行的.

54 节事务肯定失效:
应该这样:
@Autowired
private VoucherOrderServiceImpl voucherOrderServiceImpl;

voucherOrderServiceImpl.createOrder(voucherId);

voucherOrderServiceImpl.createOrder(voucherId); 等效于this.createOrder(voucherId) this 拿到的是原始对象,没有经过动态代理,使用Autowired 注入的是经过动态代理的,可以处理事务,这是开发中大坑,
当然你也可以通过application.getbean(voucherOrderServiceImpl.class) 拿到代理类

这里做了一下基础篇和实战篇的笔记,需要的兄弟萌可以来看看,如果对你有帮助的话,可不可以把这条评论顶上去

Redis基础篇:https://cyborg2077.github.io/2022/10/21/RedisBasic/
Redis实战篇:https://cyborg2077.github.io/2022/10/22/RedisPractice/

【P25无法启动】
解决方案:hm-dianping项目下载到本地导入后,不仅要修改yaml配置文件,还需修改config下的RedissonConfig配置类,改成自己的redis地址,同时加上端口号,就像下面这样
config.useSingleServer().setAddress(“redis://192.168.89.100:6379”).setPassword(“123”);

可能视频中的项目这个时候还没有RedissonConfig这个配置类,所以不报错

Licensed under CC BY-NC-SA 4.0
最后更新于 2024-04-20 21:00 CST
本博客已稳定运行
发表了14篇文章 · 总计180.21k字
Powered by Blood, Sweat, and Tears
使用 Hugo 构建 主题 StackJimmy 设计