山以
码龄3年
关注
提问 私信
  • 博客:20,562
    20,562
    总访问量
  • 47
    原创
  • 171,571
    排名
  • 319
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2021-12-01
博客简介:

fengxixu的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    2
    当前总分
    174
    当月
    1
个人成就
  • 获得446次点赞
  • 内容获得14次评论
  • 获得234次收藏
创作历程
  • 47篇
    2024年
成就勋章
TA的专栏
  • 从零开始手搓12306项目
    29篇
  • JAVA学习
    18篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

354人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

雪花算法详解

一句话概括:雪花算法是Twitter设计的根据时间戳、机器标识码和序列号生成的唯一长整型数。
原创
发布博客 2024.04.18 ·
721 阅读 ·
14 点赞 ·
0 评论 ·
3 收藏

【从零开始手搓12306项目】二十八、雪花算法(一阶段结束)

在common中新建一个util包,新建ShowUtil类,封装雪花算法。为每个数据中心和机器编号,保证每台机器生成的ID不重复。在高并发场景中,雪花算法是解决ID冲突的不错选择。修改memberservice。将代码提交到git仓库。
原创
发布博客 2024.04.18 ·
237 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十七、集成校验框架

LOG.error("业务异常:{}", e.getBindingResult().getAllErrors().get(0).getDefaultMessage());在MemberRegisterReg类中添加注解。MemberController中添加注解。在common模块的pom文件中添加依赖。* 校验异常统一处理。将代码提交到git仓库。
原创
发布博客 2024.04.18 ·
210 阅读 ·
9 点赞 ·
0 评论 ·
1 收藏

【从零开始手搓12306项目】二十六、使用自定义异常处理异常业务

在common模块新建exception包,新建BusinessExceptionEnum类。为了区分业务异常和系统异常,需要增加自定义异常类。生成get/set和tostring方法。新增BusinessRxceptin类。集成RuntimeExceptin。修改memberservice代码。生成get/set和构造函数。将代码提交到git仓库。
原创
发布博客 2024.04.18 ·
187 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十五、增加统一异常处理

在common模块中新增controller包,新增ControllerException类。将代码提交到git仓库。
原创
发布博客 2024.04.17 ·
229 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十四、封装请求参数和返回结果

member模块中ing新建req包,新建MemberRegisterReq类。在common模块中新建resp包,新建CommonResp类。写一个属性,并生成get/set和tostring方法。因为增加了无参构造,所以可以优化注册功能代码。将代码提交到git仓库。
原创
发布博客 2024.04.17 ·
225 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十三、完成会员注册接口的开发

先写service,再写controller。在http文件中输入ptrp回车快速创建代码。将代码提交到git仓库。
原创
发布博客 2024.04.17 ·
164 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十二、集成Mybatis官方生成器

自定义的SQL需要写到自己的mapper里,不能放在生成的mapper里。Mybatis官方代码生成器:Mybatis Generator。开发规范:生成器生成的四个文件都不能手动修改。创建新模块generator。在resources新建文件。修改service方法。将代码提交到git仓库。
原创
发布博客 2024.04.17 ·
194 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】二十一、集成Mybatis持久层框架

在common的数据配置文件中的数据库连接配置剪切到member模块中,添加mybatis.xml路径。新增service包,创建MemberService类,添加注解@Service,创建执行方法。在common模块的application.properties文件中,添加数据库连接。新建MemberMapper.xml文件,在启动类中添加注解@MapperScan。在member模块下的main中新建包mapper,用来存放持久层框架。每个模块的数据库配置不一样,所以放在各自的模块里。
原创
发布博客 2024.04.17 ·
336 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

【从零开始手搓12306项目】二十、使用IDEA配置数据库连接

输入连接名称,账号、密码和数据库名,此时下面会有URL,在数据库配置中会经常用到。安装mysql8.0,并配置好环境变量,用户名和密码,新建数据库train。在Database的Data Source下选择mysql。在项目中新建文件夹sql,新建member.sql文件。输入sql语句并运行,此时在数据库中会新增一个表。将代码提交到git仓库。
原创
发布博客 2024.04.17 ·
231 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十九、增加网关模块

只有gateway需要配置外网IP,其它模块都只开放内网访问,外网访问不了,保证应用安全。gateway只有一个依赖,不能引入common,也不能引入starter-web。在main下新建包com.jia.train.gateway.config。新增application.properties文件,端口配置为8000。修改valu值,让输出的日志文件都保存在gateway文件下。在train项目中增加一个maven模块gateway。做路由转发,转发到member模块。打印请求日志,修改参数。
原创
发布博客 2024.04.17 ·
173 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十八、增加通用模块

将member模块下的pom文件依赖复制到common模块下,将devtools和test依赖删除。在父pom文件和member中添加common依赖,在member中不需要依赖的版本号。在common模块的main下面新建一个aspect包。在train项目中增加一个maven模块common。去掉member里面的aspect包。相反,在member中只保留这两个。新建一个LogAspect类。
原创
发布博客 2024.04.17 ·
219 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十七、增加AOP打印请求参数和返回结果

注意在子模块中的pom文件中添加依赖时,不需要版本号,版本号只需要写在根目录下。在member模块的main下面新建一个aspect包。注意:添加依赖后,需要收到刷新maven导入jar包。同时在member模块的pom文件中导入AOP依赖。同时将依赖添加到member目录下的pom文件中。在根目录下的pom文件中加入第三方依赖。新建一个LogAspect类。AOP可以拦截其它类。
原创
发布博客 2024.04.17 ·
229 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十六、使用HHTPClient完成测试接口

在里面新建一个文件,member-test.http。左边绿色三角运行,可以让项目在idea中测试运行。在train项目中新建一个包,命名为http。在里面输入gtr回车快速生成所需代码。
原创
发布博客 2024.04.17 ·
214 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓1230项目】十五、实现日志的相关配置

在resources包下添加logback-spring.xml文件,是日志文件格式配置文件,修改valu值,让输出的日志文件都保存在member文件下。在项目提交到git时,一般不会将日志文件上传到远程仓库,所以在.gitignore文件中将log文件屏蔽掉。为了后续做路由转发,在网关模块里,将接口带“/member”的请求兜转发到member模块。将代码加在application.properties里面。在启动类里面加代码,要修改类名。之后就可以将项目提交到git上。
原创
发布博客 2024.04.17 ·
180 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十四、新建member模块

在resources包下新建application.properties,可以在这个文件里面定义访问端口和数据库相关信息等。将文件提交给git管理,在main下新建包com.jia.train.member.config。将父pom文件下的dependencies和build标签内容剪切到member的pom文件中。新建MemberApplication启动类。这样可以读取到其他包的Controller。新建maven模块,命名为member。新建TestController。新建controller包。
原创
发布博客 2024.04.17 ·
206 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十三、代码关联远程Git仓库

实际工作中,每完成一个小功能,就提交一次,写清楚注释,下班前,代码全部push到远程仓库,前提是代码不要报错。创建成功之后仓库会有提示操作,在本地仓库克隆到远程仓库代码块找相关代码。打开命令行窗口,输入以下代码,将名字和邮箱更改成自己的。将勾选取消,这两个的目的是每次提交都检查代码正确性。关联远程Git仓库需要SSH密钥。在本店的Git目录下可以生成密钥。点击Show SSH Key。将SSH密钥添加到自己仓库中。将本地仓库与远程仓库关联起来。授权仓库绑定,输入yes。将项目交给Git管理。
原创
发布博客 2024.04.17 ·
197 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十二、项目初始化配置

idea的编码环境全都改成UTF-8。
原创
发布博客 2024.04.17 ·
253 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】十一、快速完成微服务架构的搭建

创建Application启动类,测试项目能不能正常启动。导入热部署、Web框架和Cloud Bootstrap。创建Spring Initializr。SDK版本选择选择JDK 17。idea配置好Maven环境。
原创
发布博客 2024.04.17 ·
221 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【从零开始手搓12306项目】第一阶段遇到的问题及解决方案

此时本地仓库的代码版本与云仓库代码版本冲突,打开命令行强制推送,让本地仓库覆盖云仓库。一定要注意数据库的url链接,在datebase的url复制过来。定义Git全局的 .gitignore 文件。注意区分private和public。最好复制一遍到xml文件。
原创
发布博客 2024.04.16 ·
312 阅读 ·
7 点赞 ·
0 评论 ·
0 收藏
加载更多