diff --git "a/2022\345\271\264\346\234\200\346\226\260\343\200\212\344\270\255\345\215\216\344\272\272\346\260\221\345\205\261\345\222\214\345\233\275\350\221\227\344\275\234\346\235\203\346\263\225\345\256\236\346\226\275\346\235\241\344\276\213\343\200\213(\345\205\250\346\226\207).pdf" "b/2022\345\271\264\346\234\200\346\226\260\343\200\212\344\270\255\345\215\216\344\272\272\346\260\221\345\205\261\345\222\214\345\233\275\350\221\227\344\275\234\346\235\203\346\263\225\345\256\236\346\226\275\346\235\241\344\276\213\343\200\213(\345\205\250\346\226\207).pdf"
new file mode 100644
index 000000000..975288d3b
Binary files /dev/null and "b/2022\345\271\264\346\234\200\346\226\260\343\200\212\344\270\255\345\215\216\344\272\272\346\260\221\345\205\261\345\222\214\345\233\275\350\221\227\344\275\234\346\235\203\346\263\225\345\256\236\346\226\275\346\235\241\344\276\213\343\200\213(\345\205\250\346\226\207).pdf" differ
diff --git a/README.md b/README.md
index 546a0c377..f903eb7c5 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,14 @@
> 你好,我是小傅哥,[《重学Java设计模式》](https://item.jd.com/13218336.html) 图书作者,一线互联网 Java 工程师、架构师。[:pencil2: 虫洞栈,博主](https://bugstack.cn),[:memo: 关于我](https://bugstack.cn/md/other/guide-to-reading.html)
-🚜 **虫洞栈,与你:上最快的车、唠最狠的嗑,爬最高的坡、拿最贵的Offer!**
-
-- 👉 如果你不知道自己要从哪开始、要学什么、有什么结果,请看 [阅读指南](https://bugstack.cn/md/other/guide-to-reading.html) 这是一个码农研发人员提升自身技术栈广度和深度的经验之路,也是小傅哥的亲身学习经历汇总!
-- 👉 如果你是刚入行、在外包、跨语言学习、想跳槽大厂、缺少学习动力等,可以阅读小傅哥的成长故事,这个系列包括了我的个人在外包到大厂的成长、跳槽的过程、互联网的学习经历 Go -> [关于小傅哥](https://bugstack.cn/md/about/me/2020-08-25-13%E5%B9%B4%E6%AF%95%E4%B8%9A%EF%BC%8C%E7%94%A8%E4%B8%A4%E5%B9%B4%E6%97%B6%E9%97%B4%E4%BB%8E%E5%A4%96%E5%8C%85%E8%B5%B0%E8%BF%9B%E4%BA%92%E8%81%94%E7%BD%91%E5%A4%A7%E5%8E%82.html)
-- 👉 推荐 [在线阅读 bugstack.cn](https://bugstack.cn) (Github 访问速度比较慢可能会导致部分图片无法刷新出来)
-- 👉 **【重要】** 源码下载指引:小傅哥博客【设计模式、Spring、字节码、插件、中间件等】涉及到的全部源码地址:[Go -> 源码索引](https://github.com/fuzhengwei/CodeGuide#1-%E6%BA%90%E7%A0%81)
-- **云服务器**:[60元1年,180元3年,新人服务器](https://www.aliyun.com/minisite/goods?taskPkg=1111ydsrwb&pkgSid=11388&recordId=1033318&userCode=is4kfbdt) 云服务学习视频课程:[📺B站 `小傅哥の码场`](https://space.bilibili.com/15637440/channel/seriesdetail?sid=479958)
+- :dog: 13年毕业,大厂互联网T8架构师,全网40万粉编程知识博主。
+- :man_technologist: 成长:[关于我,从小白到架构师的成长经历](https://www.bilibili.com/video/BV1FF41137q5)
+- :bus: 源码:[`RoadMap 编程路书`](https://github.com/fuzhengwei/RoadMap) | [`Java 数据结构和算法`](https://github.com/fuzhengwei/java-algorithms) | [`IM 仿微信`](https://github.com/fuzhengwei/NaiveChat) | [`Java 面经手册`](https://github.com/fuzhengwei/interview) | [`IntelliJ IDEA 插件开发`](https://github.com/fuzhengwei/guide-idea-plugin) | [`Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践`](https://github.com/fuzhengwei/Lottery) | [`API网关`](https://github.com/fuzhengwei/api-gateway) | [`手写MyBatis`](https://github.com/fuzhengwei/small-mybatis) | [`重学Java设计模式`](https://github.com/fuzhengwei/itstack-demo-design) | [`Netty 实战案例`](https://github.com/fuzhengwei/itstack-demo-netty) | [`字节码编程`](https://github.com/fuzhengwei/itstack-demo-bytecode) | [`ChatGPT AI 问答助手`](https://github.com/fuzhengwei/chatbot-api) | [更多搜索...](https://github.com/fuzhengwei?tab=repositories)
+- :seedling: 干货:[公众号『 bugstack虫洞栈 』](https://bugstack.cn/images/personal/qrcode.png)
+- :pencil: 博客:[bugstack.cn](https://bugstack.cn/) - 足够硬核,内容老狠了!
+- :tv: 视频:[B站 小傅哥の码场](https://space.bilibili.com/15637440)
+- :love_letter: 微信:[fustack](https://bugstack.cn/images/personal/fustack.png) - 备注来意
+- :feet: 我的编程知识星球:[实战生产级项目、手写框架级源码,可以向我 1对1 提问,解答技术/职场/规划问题](https://bugstack.cn/md/zsxq/introduce.html)
@@ -41,10 +42,10 @@
1. **介绍**:关于 虫洞栈 · CodeGuide 的相关介绍请看:[关于`虫洞栈`的一些说明](https://bugstack.cn/md/other/guide-to-reading.html)
2. **贡献**:欢迎参与到 CodeGuide 的维护工作,你可以 `提交Issue`、`处理Issue`、`提交PR(Fork代码库,提交Pull requests) - 另外当你 Fork 代码库后,可以在阅读` [`bugstack.cn`](https://bugstack.cn/) 时,文末点击 “在 GitHub 上编辑此页” 进行提交PR Go -> [操作指导](https://github.com/fuzhengwei/CodeGuide/issues/260)
-3. **PDF**:[《Java 面经手册》](https://download.csdn.net/download/Yao__Shun__Yu/14932325)、[《手撸 Spring》](https://download.csdn.net/download/Yao__Shun__Yu/21009038)、[《字节码编程》](https://download.csdn.net/download/Yao__Shun__Yu/12505051)
+3. **PDF**:[《Java 面经手册》](https://download.csdn.net/download/Yao__Shun__Yu/14932325)、[《字节码编程》](https://download.csdn.net/download/Yao__Shun__Yu/12505051)
4. **小册**:[IM](https://blog.csdn.net/generalfu/category_10400631.html) - Netty4.x + SpringBoot 仿PC微信、[SpringBoot 中间件设计和开发](https://juejin.cn/book/6940996508632219689) - 16个中间件实现,包括测试工程等共计30个代码库,每一章节都会对应有一个中间件的设计和实现
5. **我的书籍**:[《重学Java设计模式》](https://item.jd.com/13218336.html) - 这是一本基于互联网真实案例编写的Java设计模式实践图书。全书以解决方案为核心,从实际开发业务中抽离出交易、营销、规则引擎、中间件、框架源码等22个真实场景,对设计模式进行全面、彻底的分析。
-6. **知识星球**:[码农会锁](https://t.zsxq.com/jAi2nUf) - 技术解答/简历批阅/成长指导/内容分享/实战项目 - [《Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践》](https://codechina.csdn.net/KnowledgePlanet/Lottery)
+6. **知识星球**:[码农会锁](https://t.zsxq.com/jAi2nUf) - 技术解答/简历批阅/成长指导/内容分享/实战项目 - [《Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践》](https://bugstack.cn/md/project/lottery/introduce/Lottery%E6%8A%BD%E5%A5%96%E7%B3%BB%E7%BB%9F.html)
7. **转载须知** :以下所有文章如非文首说明皆为我(小傅哥)的原创,转载在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!⛽️
## ⛳ 目录
@@ -55,9 +56,10 @@
- [2.2 用Java实现JVM](https://github.com/fuzhengwei/CodeGuide#22-%E7%94%A8java%E5%AE%9E%E7%8E%B0jvm---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
- [2.3 基础技术](https://github.com/fuzhengwei/CodeGuide#23-%E5%9F%BA%E7%A1%80%E6%8A%80%E6%9C%AF---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
3. [Spring](https://github.com/fuzhengwei/CodeGuide#3-spring)
- - [3.1 Spring 手撸专栏](https://github.com/fuzhengwei/CodeGuide#31-spring-%E6%89%8B%E6%92%B8%E4%B8%93%E6%A0%8F---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
- - [3.2 Spring Cloud](https://github.com/fuzhengwei/CodeGuide#32-spring-cloud---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
- - [3.3 源码分析(Mybatis、Quartz)](https://github.com/fuzhengwei/CodeGuide#33-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90mybatisquartz---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
+ - [3.1 Spring 手撸专栏](https://github.com/fuzhengwei/CodeGuide#31-spring-%E6%89%8B%E6%92%B8%E4%B8%93%E6%A0%8F----%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
+ - [3.2 Mybatis 手撸专栏](https://github.com/fuzhengwei/CodeGuide#32-mybatis-%E6%89%8B%E6%92%B8%E4%B8%93%E6%A0%8F----%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
+ - [3.3 Spring Cloud](https://github.com/fuzhengwei/CodeGuide#32-spring-cloud---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
+ - [3.4 源码分析(Mybatis、Quartz)](https://github.com/fuzhengwei/CodeGuide#33-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90mybatisquartz---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
4. [面向对象](https://github.com/fuzhengwei/CodeGuide#4-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1)
- [4.1 设计模式](https://github.com/fuzhengwei/CodeGuide#41-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
- [4.2 系统架构](https://github.com/fuzhengwei/CodeGuide#42-%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84---%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB)
@@ -103,7 +105,7 @@
10. `服务框架搭建` [itstack-demo-frame](https://github.com/fuzhengwei/itstack-demo-frame)
11. `源码分析(Spring、Mybatis、Schedule)` [itstack-demo-code](https://github.com/fuzhengwei/itstack-demo-code)
12. `Drools规则引擎` [itstack-demo-drools](https://github.com/fuzhengwei/itstack-demo-drools)
-13. `ASM字节码编程` [itstack-demo-asm](https://github.com/fuzhengwei/itstack-demo-asm)
+13. `ASM字节码编程` [itstack-demo-asm](https://github.com/fuzhengwei/itstack-demo-asm)、[SQM](https://github.com/WormholePistachio/SQM)
14. `我的大学四年到毕业工作5年的学习资源和面试汇总` [网盘下载,if链接失效,加微信:fustack](https://pan.baidu.com/s/4mmX7sDy)
15. `Netty+JavaFx实战:仿桌面版微信聊天` [NaiveChat](https://github.com/fuzhengwei/NaiveChat)
16. `JDK1.8新特性41个案例讲解` [itstack-demo-jdk8](https://github.com/fuzhengwei/itstack-demo-jdk8)
@@ -112,6 +114,8 @@
19. 🔥`Java面经手册` [interview](https://github.com/fuzhengwei/interview)
20. 🔥`Spring手撸专栏` [small-spring](https://github.com/fuzhengwei/small-spring)
21. `IntelliJ IDEA 插件开发` [guide-idea-plugin](https://github.com/fuzhengwei/guide-idea-plugin)
+22. 🔥`Mybatis手撸专栏` [small-mybatis](https://github.com/fuzhengwei/small-mybatis)
+23. `Java数据结构和算法` [java-algorithms](https://github.com/fuzhengwei/java-algorithms)
**如果**,以上某些资源不能下载获取,可以添加作者好友:小傅哥的微信(fustack)
@@ -244,7 +248,50 @@
-### 3.2 Spring Cloud - 👉[**在线阅读**](https://bugstack.cn/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%9B%B6%E3%80%8A%E6%80%BB%E6%9C%89%E4%B8%80%E5%81%8F%E6%A6%82%E8%BF%B0%E5%91%8A%E8%AF%89%E4%BD%A0SpringCloud%E6%98%AF%E4%BB%80%E4%B9%88%E3%80%8B.html)
+### 3.2 Mybatis 手撸专栏 - 👉[**在线阅读**](https://bugstack.cn/md/spring/develop-mybatis/2022-03-20-%E7%AC%AC1%E7%AB%A0%EF%BC%9A%E5%BC%80%E7%AF%87%E4%BB%8B%E7%BB%8D%EF%BC%8C%E6%89%8B%E5%86%99Mybatis%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E4%BB%80%E4%B9%88%EF%BC%9F.html)
+
+- 介绍
+
+ - [【难度☆☆☆☆☆】第01章:开篇介绍,我要带你撸 Mybatis 啦!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-03-20-%E7%AC%AC1%E7%AB%A0%EF%BC%9A%E5%BC%80%E7%AF%87%E4%BB%8B%E7%BB%8D%EF%BC%8C%E6%89%8B%E5%86%99Mybatis%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E4%BB%80%E4%B9%88%EF%BC%9F.md)
+
+- 第 1 部分 - 基础框架
+
+ - [【难度★★☆☆☆】第02章:创建简单的映射器代理工厂](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-03-27-%E7%AC%AC2%E7%AB%A0%EF%BC%9A%E5%88%9B%E5%BB%BA%E7%AE%80%E5%8D%95%E7%9A%84%E6%98%A0%E5%B0%84%E5%99%A8%E4%BB%A3%E7%90%86%E5%B7%A5%E5%8E%82.md)
+ - [【难度★★☆☆☆】第03章:实现映射器的注册和使用](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-04-04-%E7%AC%AC3%E7%AB%A0%EF%BC%9A%E5%AE%9E%E7%8E%B0%E6%98%A0%E5%B0%84%E5%99%A8%E7%9A%84%E6%B3%A8%E5%86%8C%E5%92%8C%E4%BD%BF%E7%94%A8.md)
+ - [【难度★★★☆☆】第04章:Mapper XML的解析和注册使用](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-04-09-%E7%AC%AC4%E7%AB%A0%EF%BC%9AXML%E7%9A%84%E8%A7%A3%E6%9E%90%E5%92%8C%E6%B3%A8%E5%86%8C%E4%BD%BF%E7%94%A8.md)
+
+- 第 2 部分 - 模块服务
+
+ - [【难度★★★☆☆】第05章:数据源的解析、创建和使用](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-04-09-%E7%AC%AC4%E7%AB%A0%EF%BC%9AXML%E7%9A%84%E8%A7%A3%E6%9E%90%E5%92%8C%E6%B3%A8%E5%86%8C%E4%BD%BF%E7%94%A8.md)
+ - [【难度★★★★☆】第06章:数据源池化技术实现](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-04-17-%E7%AC%AC5%E7%AB%A0%EF%BC%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E7%9A%84%E8%A7%A3%E6%9E%90%E3%80%81%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8.md)
+ - [【难度★★★☆☆】第07章:SQL执行器的定义和实现](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-04-28-%E7%AC%AC7%E7%AB%A0%EF%BC%9ASQL%E6%89%A7%E8%A1%8C%E5%99%A8%E7%9A%84%E5%AE%9A%E4%B9%89%E5%92%8C%E5%AE%9E%E7%8E%B0.md)
+ - [【难度★★★★★】第08章:把反射用到出神入化](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-05-03-%E7%AC%AC8%E7%AB%A0%EF%BC%9A%E6%8A%8A%E5%8F%8D%E5%B0%84%E7%94%A8%E5%88%B0%E5%87%BA%E7%A5%9E%E5%85%A5%E5%8C%96.md)
+
+- 第 3 部分 - 串联流程
+
+ - [【难度★★★★☆】第09章:细化XML语句构建器,完善静态SQL解析](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-05-18-%E7%AC%AC9%E7%AB%A0%EF%BC%9A%E7%BB%86%E5%8C%96XML%E8%AF%AD%E5%8F%A5%E6%9E%84%E5%BB%BA%E5%99%A8%EF%BC%8C%E5%AE%8C%E5%96%84%E9%9D%99%E6%80%81SQL%E8%A7%A3%E6%9E%90.md)
+ - [【难度★★★★☆】第10章:使用策略模式,调用参数处理器](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-05-26-%E7%AC%AC10%E7%AB%A0%EF%BC%9A%E4%BD%BF%E7%94%A8%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F%EF%BC%8C%E8%B0%83%E7%94%A8%E5%8F%82%E6%95%B0%E5%A4%84%E7%90%86%E5%99%A8.md)
+ - [【难度★★★☆☆】第11章:流程解耦,封装结果集处理器](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-06-02-%E7%AC%AC11%E7%AB%A0%EF%BC%9A%E6%B5%81%E7%A8%8B%E8%A7%A3%E8%80%A6%EF%BC%8C%E5%B0%81%E8%A3%85%E7%BB%93%E6%9E%9C%E9%9B%86%E5%A4%84%E7%90%86%E5%99%A8.md)
+ - [【难度★★★☆☆】第12章:完善ORM框架,增删改查操作](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-06-10-%E7%AC%AC12%E7%AB%A0%EF%BC%9A%E5%AE%8C%E5%96%84ORM%E6%A1%86%E6%9E%B6%EF%BC%8C%E5%A2%9E%E5%88%A0%E6%94%B9%E6%9F%A5%E6%93%8D%E4%BD%9C.md)
+
+
+- 第 4 部分 - 扩展功能
+
+ - [【难度★★★☆☆】第13章:通过注解配置执行SQL语句](https://articles.zsxq.com/id_cushlx5xx5wj.html)
+ - [【难度★★★☆☆】第14章:解析和使用ResultMap映射参数配置](https://articles.zsxq.com/id_lszxhhridkrl.html)
+ - [【难度★★★☆☆】第15章:返回Insert操作自增索引值](https://articles.zsxq.com/id_gwfa0x8nciwn.html)
+ - [【难度★★★☆☆】第16章:解析含标签的动态SQL语句](https://articles.zsxq.com/id_1rzspttev8ls.html)
+ - [【难度★★★★☆】第17章:Plugin 插件扩展](https://articles.zsxq.com/id_k7havmcaefdk.html)
+ - [【难度★★★★☆】第18章:一级缓存](https://articles.zsxq.com/id_8d0o471we1ig.html)
+ - [【难度★★★★☆】第19章:二级缓存](https://articles.zsxq.com/id_gviwjzv5h4wp.html)
+ - [【难度★★★★☆】第20章:【作业】整合Spring](https://articles.zsxq.com/id_2pwtkmjixi73.html)
+
+- 终章
+
+ - [【番外】第21章:小册完结,一次源码深度学习旅行!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-07-06-%E7%AC%AC20%E7%AB%A0%EF%BC%9A%E6%95%B4%E5%90%88Spring.md)
+ - [【番外】第22章:Mybatis 框架源码10种设计模式分析](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/develop-mybatis/2022-07-15-%E7%AC%AC22%E7%AB%A0%EF%BC%9AMybatis%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md)
+
+### 3.2 Spring Cloud - 👉[**在线阅读**](https://bugstack.cn/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%9B%B6%E3%80%8A%E6%80%BB%E6%9C%89%E4%B8%80%E5%81%8F%E6%A6%82%E8%BF%B0%E5%91%8A%E8%AF%89%E4%BD%A0SpringCloud%E6%98%AF%E4%BB%80%E4%B9%88%E3%80%8B.html)
- [Spring Cloud零《总有一偏概述告诉你SpringCloud是什么》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%9B%B6%E3%80%8A%E6%80%BB%E6%9C%89%E4%B8%80%E5%81%8F%E6%A6%82%E8%BF%B0%E5%91%8A%E8%AF%89%E4%BD%A0SpringCloud%E6%98%AF%E4%BB%80%E4%B9%88%E3%80%8B.md)
- [Spring Cloud一《服务集群注册与发现 Eureka》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/spring-cloud/2019-11-01-Spring%20Cloud%E4%B8%80%E3%80%8A%E6%9C%8D%E5%8A%A1%E9%9B%86%E7%BE%A4%E6%B3%A8%E5%86%8C%E4%B8%8E%E5%8F%91%E7%8E%B0%20Eureka%E3%80%8B.md)
@@ -272,6 +319,7 @@
- [基于jdbc实现一个Demo版的Mybatis用](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/source-code/2020-01-13-%5B%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%5D%E5%9F%BA%E4%BA%8Ejdbc%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AADemo%E7%89%88%E7%9A%84Mybatis.md)
- [手写mybait-spring核心功能,干货好文一次学会工厂bean、类代理、bean注册的使用](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/source-code/2020-01-20-%5B%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%5D%E6%89%8B%E5%86%99mybait-spring%E6%A0%B8%E5%BF%83%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%B9%B2%E8%B4%A7%E5%A5%BD%E6%96%87%E4%B8%80%E6%AC%A1%E5%AD%A6%E4%BC%9A%E5%B7%A5%E5%8E%82bean%E3%80%81%E7%B1%BB%E4%BB%A3%E7%90%86%E3%80%81bean%E6%B3%A8%E5%86%8C%E7%9A%84%E4%BD%BF%E7%94%A8.md)
+- [为什么 insert 配置 "SELECT LAST_INSERT_ID()" 返回个0呢?](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/spring/source-code/2022-06-24-%E4%B8%BA%E4%BB%80%E4%B9%88insert%E9%85%8D%E7%BD%AESELECT%20LAST_INSERT_ID()%E8%BF%94%E5%9B%9E%E4%B8%AA0%E5%91%A2.md)
@@ -279,6 +327,10 @@
### 4.1 设计模式 - 👉[**在线阅读**](https://bugstack.cn/md/develop/design-pattern/2020-05-20-%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E3%80%8A%E5%AE%9E%E6%88%98%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F%E3%80%8B.html)
+- 介绍
+
+ - [《重学Java设计模式》开始在B站录视频了!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/design-pattern/2022-03-12-%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8FB%E7%AB%99%E8%A7%86%E9%A2%91.md)
+
- 创建型模式
- [重学 Java 设计模式《实战工厂方法模式》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/design-pattern/2020-05-20-%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E3%80%8A%E5%AE%9E%E6%88%98%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F%E3%80%8B.md)
@@ -338,6 +390,8 @@
- [不重复造轮子只是骗小孩子的,教你手撸 SpringBoot 脚手架!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/framework/scheme/2021-03-14-%E4%B8%8D%E9%87%8D%E5%A4%8D%E9%80%A0%E8%BD%AE%E5%AD%90%E5%8F%AA%E6%98%AF%E9%AA%97%E5%B0%8F%E5%AD%A9%E5%AD%90%E7%9A%84%EF%BC%8C%E6%95%99%E4%BD%A0%E6%89%8B%E6%92%B8%20SpringBoot%20%E8%84%9A%E6%89%8B%E6%9E%B6%EF%BC%81.md)
- [刚火了的中台转头就拆,一大波公司放不下又拿不起来!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/framework/scheme/2021-03-24-%E5%88%9A%E7%81%AB%E4%BA%86%E7%9A%84%E4%B8%AD%E5%8F%B0%E8%BD%AC%E5%A4%B4%E5%B0%B1%E6%8B%86%EF%BC%8C%E4%B8%80%E5%A4%A7%E6%B3%A2%E5%85%AC%E5%8F%B8%E6%94%BE%E4%B8%8D%E4%B8%8B%E5%8F%88%E6%8B%BF%E4%B8%8D%E8%B5%B7%E6%9D%A5%EF%BC%81.md)
- [调研字节码插桩技术,用于系统监控设计和实现](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/framework/scheme/2021-07-19-%E8%B0%83%E7%A0%94%E5%AD%97%E8%8A%82%E7%A0%81%E6%8F%92%E6%A1%A9%E6%8A%80%E6%9C%AF%EF%BC%8C%E7%94%A8%E4%BA%8E%E7%B3%BB%E7%BB%9F%E7%9B%91%E6%8E%A7%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%AE%9E%E7%8E%B0.md)
+ - [基于库表分段扫描和数据Redis预热,优化分布式延迟任务触达时效性](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/framework/scheme/2022-02-14-%E5%9F%BA%E4%BA%8E%E5%BA%93%E8%A1%A8%E5%88%86%E6%AE%B5%E6%89%AB%E6%8F%8F%E5%92%8C%E6%95%B0%E6%8D%AERedis%E9%A2%84%E7%83%AD%EF%BC%8C%E4%BC%98%E5%8C%96%E5%88%86%E5%B8%83%E5%BC%8F%E5%BB%B6%E8%BF%9F%E4%BB%BB%E5%8A%A1%E8%A7%A6%E8%BE%BE%E6%97%B6%E6%95%88%E6%80%A7.md)
+ - [怎么说服领导,能让我用DDD架构肝项目?](https://github.com/fuzhengwei/CodeGuide/blob/85f9a7e21065a5c3b2345f94734e903eb58d3b08/docs/md/develop/framework/scheme/2022-02-21-%E6%80%8E%E4%B9%88%E8%AF%B4%E6%9C%8D%E9%A2%86%E5%AF%BC%EF%BC%8C%E8%83%BD%E8%AE%A9%E6%88%91%E7%94%A8DDD%E6%9E%B6%E6%9E%84.md)
@@ -353,6 +407,8 @@
- [还重构?就你那代码只能铲了重写!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/standard/2021-09-15-%E8%BF%98%E9%87%8D%E6%9E%84%EF%BC%9F%E5%B0%B1%E4%BD%A0%E9%82%A3%E4%BB%A3%E7%A0%81%E5%8F%AA%E8%83%BD%E9%93%B2%E4%BA%86%E9%87%8D%E5%86%99%EF%BC%81.md)
- [p3c 插件,是怎么检查出你那屎山的代码?](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/standard/2021-09-27-p3c%20%E6%8F%92%E4%BB%B6%EF%BC%8C%E6%98%AF%E6%80%8E%E4%B9%88%E6%A3%80%E6%9F%A5%E5%87%BA%E4%BD%A0%E9%82%A3%E5%B1%8E%E5%B1%B1%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%9F.md)
- [12种 vo2dto 方法,就 BeanUtils.copyProperties 压测最拉胯](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/standard/2021-10-10-12%E7%A7%8D%20vo2dto%20%E6%96%B9%E6%B3%95%EF%BC%8C%E5%B0%B1%20BeanUtils.copyProperties%20%E5%8E%8B%E6%B5%8B%E6%9C%80%E6%8B%89%E8%83%AF.md)
+- [架构师深夜把玩 ApiPost,分享细腻的体验!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/standard/2022-03-06-ApiPost.md)
+- [你说写代码,最常用的3个设计模式是啥?](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/develop/standard/2022-05-15-%E4%BD%A0%E8%AF%B4%E5%86%99%E4%BB%A3%E7%A0%81%EF%BC%8C%E6%9C%80%E5%B8%B8%E7%94%A8%E7%9A%843%E4%B8%AA%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E6%98%AF%E5%95%A5%EF%BC%9F.md)
@@ -505,7 +561,7 @@
- [基于JavaAgent的全链路监控四《JVM内存与GC信息》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/bytecode/agent/2019-07-13-%E5%9F%BA%E4%BA%8EJavaAgent%E7%9A%84%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7%E5%9B%9B%E3%80%8AJVM%E5%86%85%E5%AD%98%E4%B8%8EGC%E4%BF%A1%E6%81%AF%E3%80%8B.md)
- [基于JavaAgent的全链路监控五《ThreadLocal链路追踪》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/bytecode/agent/2019-07-14-%E5%9F%BA%E4%BA%8EJavaAgent%E7%9A%84%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7%E4%BA%94%E3%80%8AThreadLocal%E9%93%BE%E8%B7%AF%E8%BF%BD%E8%B8%AA%E3%80%8B.md)
-- [基于JavaAgent的全链路监控六《开发应用级监控》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/bytecode/agent/2019-07-14-%E5%9F%BA%E4%BA%8EJavaAgent%E7%9A%84%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7%E4%BA%94%E3%80%8AThreadLocal%E9%93%BE%E8%B7%AF%E8%BF%BD%E8%B8%AA%E3%80%8B.md)
+- [基于JavaAgent的全链路监控六《开发应用级监控》](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/bytecode/agent/2019-07-15-%E5%9F%BA%E4%BA%8EJavaAgent%E7%9A%84%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7%E5%85%AD%E3%80%8A%E5%BC%80%E5%8F%91%E5%BA%94%E7%94%A8%E7%BA%A7%E7%9B%91%E6%8E%A7%E3%80%8B.md)
@@ -648,7 +704,7 @@
-### 8.3 Lottery 分布式抽奖系统 - 👉[**在线阅读**](https://bugstack.cn/md/project/lottery/Part-2/%E7%AC%AC01%E8%8A%82%EF%BC%9A%E5%BC%80%E7%AF%87%E4%BB%8B%E7%BB%8D.html)
+### 8.3 Lottery 分布式抽奖系统 - 👉[**在线阅读**](https://bugstack.cn/md/project/lottery/introduce/Lottery%E6%8A%BD%E5%A5%96%E7%B3%BB%E7%BB%9F.html)
- [Lottery 分布式抽奖系统介绍](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/project/lottery/introduce/Lottery%E6%8A%BD%E5%A5%96%E7%B3%BB%E7%BB%9F.md)
@@ -702,6 +758,8 @@
- [第04节:部署环境 Mysql](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/project/lottery/Part-5/%E7%AC%AC04%E8%8A%82%EF%BC%9A%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%20Mysql.md)
- [第05节:部署环境 xxl-job](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/project/lottery/Part-5/%E7%AC%AC05%E8%8A%82%EF%BC%9A%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%20xxl-job.md)
- [第06节:部署环境 nacos](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/project/lottery/Part-5/%E7%AC%AC06%E8%8A%82%EF%BC%9A%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%20nacos.md)
+ - [第07节:部署环境 Elasticsearch、Kibana](#)
+ - [第08节:部署环境 canal 同步数据到 ES](#)
@@ -720,6 +778,7 @@
- [Cloudreve 自建云盘实践,我说了没人能限得了我的容量和速度!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/devops/2021-04-11-Cloudreve%20%E8%87%AA%E5%BB%BA%E4%BA%91%E7%9B%98%E5%AE%9E%E8%B7%B5%EF%BC%8C%E6%88%91%E8%AF%B4%E4%BA%86%E6%B2%A1%E4%BA%BA%E8%83%BD%E9%99%90%E5%BE%97%E4%BA%86%E6%88%91%E7%9A%84%E5%AE%B9%E9%87%8F%E5%92%8C%E9%80%9F%E5%BA%A6%EF%BC%81.md)
- [【经验分享】码农使用云服务学习,部环境、开端口、配域名、弄SSL、搭博客](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/devops/2021-06-04-%E3%80%90%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB%E3%80%91%E7%A0%81%E5%86%9C%E4%BD%BF%E7%94%A8%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%AD%A6%E4%B9%A0%EF%BC%8C%E9%83%A8%E7%8E%AF%E5%A2%83%E3%80%81%E5%BC%80%E7%AB%AF%E5%8F%A3%E3%80%81%E9%85%8D%E5%9F%9F%E5%90%8D%E3%80%81%E5%BC%84SSL%E3%80%81%E6%90%AD%E5%8D%9A%E5%AE%A2%EF%BC%81.md)
- [关于怎么使用 webhooks 自动部署博客,详细教程文档!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/devops/2021-11-07-%E5%85%B3%E4%BA%8E%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8%20webhooks%20%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E5%8D%9A%E5%AE%A2%EF%BC%8C%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B%E6%96%87%E6%A1%A3%EF%BC%81.md)
+- [教小白使用 docsify,搭建一个贼简单的所见即所得博客!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/devops/2022-03-04-%E6%95%99%E5%B0%8F%E7%99%BD%E4%BD%BF%E7%94%A8%20docsify%EF%BC%8C%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%B4%BC%E7%AE%80%E5%8D%95%E7%9A%84%E6%89%80%E8%A7%81%E5%8D%B3%E6%89%80%E5%BE%97%E5%8D%9A%E5%AE%A2%EF%BC%81.md)
@@ -754,6 +813,8 @@
- [我在CSDN赚了1.2万](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/me/2021-09-05-%E6%88%91%E5%9C%A8CSDN%E8%B5%9A%E4%BA%861.2%E4%B8%87.md)
- [炸!1024,小傅哥的博客升级啦,文章开源、支持PR,冲哇!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/me/2021-10-24-%E7%82%B8%EF%BC%811024%EF%BC%8C%E5%B0%8F%E5%82%85%E5%93%A5%E7%9A%84%E5%8D%9A%E5%AE%A2%E5%8D%87%E7%BA%A7%E5%95%A6%EF%BC%8C%E6%96%87%E7%AB%A0%E5%BC%80%E6%BA%90%E3%80%81%E6%94%AF%E6%8C%81PR%EF%BC%8C%E5%86%B2%E5%93%87%EF%BC%81.md)
- [CodeGuide 300+文档、100+代码库,一个指导程序员写代码的,Github 仓库开源啦!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/me/2021-11-14-CodeGuide%E5%BC%80%E6%BA%90%E4%BB%93%E5%BA%93.md)
+- [2021年,小傅哥の年终总结!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/me/2022-01-27-2021%E5%B9%B4%EF%BC%8C%E5%B0%8F%E5%82%85%E5%93%A5%E3%81%AE%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93%EF%BC%81.md)
+- [被掘金读者举报,侵权国外资料,但却是一次不错的经历!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/me/2022-05-22-copyright-violation.md)
@@ -772,6 +833,7 @@
- [数学,离一个程序员有多近?](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/study/2020-12-20-%E5%B7%A5%E4%BD%9C3%E5%B9%B4%EF%BC%8C%E7%9C%8B%E5%95%A5%E8%B5%84%E6%96%99%E8%83%BD%E6%9C%88%E8%96%AA30K%EF%BC%9F.md)
- [大学毕业要写多少行代码,才能不用花钱培训就找到一份开发工作?](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/study/2020-12-20-%E5%B7%A5%E4%BD%9C3%E5%B9%B4%EF%BC%8C%E7%9C%8B%E5%95%A5%E8%B5%84%E6%96%99%E8%83%BD%E6%9C%88%E8%96%AA30K%EF%BC%9F.md)
- [2021版,开发者学习路线图分享](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/study/2021-09-09-2021%E7%89%88%EF%BC%8C%E5%BC%80%E5%8F%91%E8%80%85%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF%E5%9B%BE%E5%88%86%E4%BA%AB.md)
+- [你上车,我就把你带成卷王!](https://github.com/fuzhengwei/CodeGuide/blob/master/docs/md/about/study/2022-02-07-%E4%BD%A0%E4%B8%8A%E8%BD%A6%EF%BC%8C%E6%88%91%E5%B0%B1%E6%8A%8A%E4%BD%A0%E5%B8%A6%E6%88%90%E5%8D%B7%E7%8E%8B%EF%BC%81.md)
diff --git a/build.sh b/build.sh
new file mode 100644
index 000000000..2af146afc
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,11 @@
+# 先切换到指定的 Node.js 版本 sudo n
+NODE_OPTIONS=--max-old-space-size=24096 npm run build
+
+# 优惠券地址;https://bugstack.cn/images/article/zsxq/zsxq-youhuiquan.png
+# node 版本切换;https://www.cnblogs.com/fengchong0925/p/18489658
+# 全局安装;npm install -g n
+# 安装指定node版本;sudo -E n 18.16.0
+# 查看已安装的版本列表;n list
+# 删除指定版本;n rm 16.13.2
+# 切换node版本;sudo n
+# 查看切换版本;node -v npm -v
\ No newline at end of file
diff --git a/docs/.vuepress/components/LockArticle.vue b/docs/.vuepress/components/LockArticle.vue
index a4fdbd2a7..cbebdc22f 100644
--- a/docs/.vuepress/components/LockArticle.vue
+++ b/docs/.vuepress/components/LockArticle.vue
@@ -82,28 +82,27 @@
return;
}
- let token = t.getToken();
-
- $.ajax({
- url: 'https://api.bugstack.cn/interfaces/BlogApi.php',
- type: "GET",
- dataType: "text",
- data: {
- token: token
- },
- success: function (data) {
- if (data === 'refuse') {
- t._lock(articleObj);
- } else {
+ t.getToken().then(function (token) {
+ $.ajax({
+ url: 'https://x-api.itedus.cn/api/v1/blog/check',
+ type: "GET",
+ dataType: "text",
+ data: {
+ token: token
+ },
+ success: function (data) {
+ if (data === 'refuse') {
+ t._lock(articleObj);
+ } else {
+ t._unlock(articleObj);
+ t.setCookie("_unlock", "success", 45);
+ }
+ },
+ error: function (data) {
t._unlock(articleObj);
- t.setCookie("_unlock", "success", 1);
}
- },
- error: function (data) {
- t._unlock(articleObj);
- }
- })
-
+ })
+ });
},
_lock: function (articleObj) {
let $article = articleObj.article;
@@ -117,34 +116,35 @@
if (this.os().isPc && halfHeight > 800) {
// 获取口令
- let token = this.getToken();
- $('#fustack-token').text(token);
+ this.getToken().then(function (token) {
+ $('#fustack-token').text(token);
- // 判断是否已加锁
- if ($article.hasClass("lock")) {
- return;
- }
+ // 判断是否已加锁
+ if ($article.hasClass("lock")) {
+ return;
+ }
- // 设置文章可显示高度
- $article.css({"height": halfHeight + 'px'});
- $article.addClass('lock');
+ // 设置文章可显示高度
+ $article.css({"height": halfHeight + 'px'});
+ $article.addClass('lock');
- // 添加引导解锁标签
- $article.remove("#read-more-wrap");
+ // 添加引导解锁标签
+ $article.remove("#read-more-wrap");
- let clone = $('.read-more-wrap').clone();
- clone.attr('id', 'read-more-wrap');
- clone.css('display', 'block');
+ let clone = $('.read-more-wrap').clone();
+ clone.attr('id', 'read-more-wrap');
+ clone.css('display', 'block');
- clone.find("#read-more-btn").click(function () {
- clone.find("#btw-modal-wrap").css('display', 'block');
- });
+ clone.find("#read-more-btn").click(function () {
+ clone.find("#btw-modal-wrap").css('display', 'block');
+ });
- clone.find("#btw-modal-close-btn").click(function () {
- clone.find("#btw-modal-wrap").css('display', 'none');
- });
+ clone.find("#btw-modal-close-btn").click(function () {
+ clone.find("#btw-modal-wrap").css('display', 'none');
+ });
- $article.append(clone);
+ $article.append(clone);
+ });
}
},
@@ -163,31 +163,39 @@
$('#read-more-wrap').remove();
},
- getToken: function () {
- // 浏览器 Cookie true 不限制
- if(navigator.cookieEnabled){
- let value = this.getCookie('UM_distinctid');
- if (!value) {
- return this.getFingerprintId();
- }
- return value.substring(value.length - 6).toUpperCase();
- } else{
- return this.getFingerprintId();
- }
+ getToken: async function () {
+ // 浏览器 Cookie true 不限制
+ if(navigator.cookieEnabled){
+ let value = this.getCookie('BAEID');
+ if (!value) {
+ return await this.getFingerprintId();
+ }
+ return value.substring(value.length - 6).toUpperCase();
+ } else{
+ return await this.getFingerprintId();
+ }
+ // return await this.getFingerprintId();
},
getFingerprintId: function () {
// https://github.com/fingerprintjs/fingerprintjs
- new Fingerprint2().get(function(result, components){
+ /* new Fingerprint2().get(function(result, components){
let value = result.toUpperCase();
let token = value.substring(value.length - 6).toUpperCase();
// 设置token
$('#fustack-token').text(token);
});
- return $('#fustack-token').text();
+ return $('#fustack-token').text();*/
+ return new Promise( resolve => {
+ new Fingerprint2().get(function(result, components){
+ let value = result.toUpperCase();
+ let token = value.substring(value.length - 6).toUpperCase();
+ resolve(token);
+ });
+ })
},
getUUID: function () {
return 'xxxxxx'.replace(/[xy]/g, function (c) {
- let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+ let r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
},
@@ -197,9 +205,9 @@
if (parts.length === 2)
return parts.pop().split(";").shift();
},
- setCookie: function (name, value, hours){
+ setCookie: function (name, value, day){
let exp = new Date();
- exp.setTime(exp.getTime() + hours*60*60*1000);
+ exp.setTime(exp.getTime() + day*24*60*60*1000);
// ;path=/ cookie全站有效
document.cookie = name + "="+ escape (value) + ";path=/;expires=" + exp.toGMTString();
},
diff --git a/docs/.vuepress/components/PayArticle.vue b/docs/.vuepress/components/PayArticle.vue
index 0c7775520..ca78d464a 100644
--- a/docs/.vuepress/components/PayArticle.vue
+++ b/docs/.vuepress/components/PayArticle.vue
@@ -4,7 +4,7 @@
付费阅读
+ style="position: absolute; left: 50%; top: 70%; bottom: 30px; transform: translate(-50%, -50%); width: 160px; height: 36px; line-height: 36px; font-size: 15px; text-align: center; border: 1px solid rgb(222, 104, 109); color: rgb(222, 104, 109); background: rgb(255, 255, 255); cursor: pointer; border-radius: 6px;">星球会员
diff --git a/docs/.vuepress/components/RoadMap.vue b/docs/.vuepress/components/RoadMap.vue
new file mode 100644
index 000000000..71cd5ab96
--- /dev/null
+++ b/docs/.vuepress/components/RoadMap.vue
@@ -0,0 +1,2259 @@
+If you see this page, the nginx web server is successfully installed and
+working. Further configuration is required.
+
+