就跟大家伙儿聊聊我前段时间折腾的那个叫“reggie”的项目。说起来也是手痒,总想着自己从头到尾搞个东西出来,才算真正把学到的东西串起来。
环境准备与项目初始化
一开始嘛老规矩,先得把开发环境给搭起来。我寻思着这项目后端用Java,那肯定得是Spring Boot那套东西了。前端么,就先简单点,Vue或者React都行,当时主要精力还是放在后端逻辑上。
第一步,拉代码。 我记得当时是在我的Linux虚拟机上操作的,先检查了下Git装了没,没有的话就`yum install git`给它装上。然后就找个目录,比如`/usr/local/project`,`cd`进去,接着就是从代码仓库把项目克隆下来。当时用的是Gitee上的一个项目,命令大概是`git clone */xxxxxxx/reggie-ruiji-takeout`这么个地址,具体地址记不清了,反正就是把“reggie”这个外卖项目的初始框架给弄到本地了。
第二步,捣鼓数据库。 这种项目,数据库是跑不了的。我用的是MySQL,得先把数据库和表给建项目里一般都会带着SQL脚本,找到那个脚本,在Navicat或者直接用命令行工具执行一下,相关的表,比如用户表、菜品表、订单表啥的,就都创建好了。这一步不做后面代码跑起来全是错。
第三步,配置项目。 把项目导入到IDEA里面。主要就是看看`*`,确认下依赖是不是都下完整了,Spring Boot版本,MyBatis Plus,数据库驱动这些。然后就是修改`*`或者`*`文件,把数据库连接信息,比如地址、用户名、密码啥的,改成我自己环境的。有时候端口号也得注意下,别跟其他正在跑的应用冲突了。
核心功能开发与调试
环境弄利索之后,就该写真正的业务代码了。这个“reggie”项目,核心模块挺典型的,主要就是后台管理和移动端用户界面两大部分。
后台管理这块儿,我先从员工登录开始做起。然后是菜品管理,包括菜品的添加、修改、删除、查询,还有菜品的分类管理。套餐管理也挺重要的,怎么把不同的菜品组合成一个套餐,价格怎么算,这些都得琢磨。订单管理也是大头,查看订单详情、修改订单状态啥的。
移动端用户接口,主要是给用户用的。用户注册登录、浏览菜品、加购物车、下单、查看自己的订单这些。这部分主要是写Controller,提供API接口给前端调用。
开发过程中,遇到不少小问题。比如一开始图片上传功能,得配置静态资源映射,Spring Boot里面可以写个配置类,指定一下静态资源的路径,比如`addResourceHandlers`什么的。还有就是分页查询,用了MyBatis Plus就方便多了,直接用它的分页插件,省了不少事儿。
我还记得在处理一些公共字段自动填充的时候,比如创建时间、更新时间、创建人、更新人这些,就用了MyBatis Plus提供的`MetaObjectHandler`,写个处理器,在插入或者更新数据的时候自动把这些字段给填上,挺好使的。
关于缓存,我也试着加了点。比如有些不经常变动的数据,像菜品分类,每次都从数据库查就有点浪费。我就尝试用了Spring Cache,给查询方法上加个`@Cacheable`注解。这样第一次查询后结果就会被缓存起来,下次再请求同样的数据,就能直接从缓存里拿,速度快不少。缓存更新和清理的策略也得考虑,不过我当时就先简单用了下。
测试与最终效果
代码写得七七八八,就得启动起来测试了。用IDEA直接启动主启动类,或者打成jar包用`java -jar`命令跑起来。然后就用Postman或者直接开浏览器(如果写了前端的话)去调那些接口,看看返回的数据对不对,功能有没有按预期实现。
比如添加一个菜品,看看数据库里有没有成功插入;用户登录,看看能不能拿到正确的用户信息;下个单,看看订单状态流转是否正常。一步步调试,遇到bug就打断点,看日志,慢慢排查。
嘛这个“reggie”项目虽然是个常见的练手项目,但整个流程自己跑通一遍,从环境搭建到功能实现,再到简单的缓存应用,还是学到不少东西的。特别是对Spring Boot全家桶的使用又熟悉了一圈。感觉就是,多动手,多实践,遇到的坑越多,成长的就越快。
现在这个项目就静静地躺在我电脑里,偶尔还会翻出来看看,回顾一下当时是怎么一步步把它弄起来的,也算是一段不错的实践经历了。
还没有评论,来说两句吧...