推荐一款优秀电商开源项目
Posted waynaqua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一款优秀电商开源项目相关的知识,希望对你有一定的参考价值。
简介
本文给大家推荐博主自己开源的电商项目newbee-mall-pro。在newbee-mall项目的基础上搭建而来, 使用 mybatis-plus 作为 orm 层框架,并添加了一系列高级功能以及代码优化,特性如下:
- 商城首页 【为你推荐】 栏目添加协同过滤算法。按照 UserCF 基于用户的协同过滤、ItemCF 基于物品的协同过滤,实现了两种不同的推荐逻辑。
- RedisSearch:支持中文分词搜索,支持商品名称、简介、标签作为搜索项,以及新品、价格排序。
RediSearch 是一个源码可用的 Redis 模块,可以对 Redis 进行查询、二级索引和全文搜索。这些功能支持在文本查询之上进行多字段查询、聚合、精确短语匹配、数字过滤、地理过滤和矢量相似性语义搜索。
- 秒杀专区:支持功能完备,生产可用的高级秒杀功能。
- 优惠卷专区:支持优惠卷后台配置、用户注册赠卷、下单页面优惠卷使用等功能。
- 商城首页支持使用滑块验证码登录。
- 支付时集成了支付宝沙箱支付,可以在开发环境体验支付宝支付效果。
- 集成 Pace 页面,添加网页进度条,页面跳转美化。
- 添加 Spring 事件监听机制,异步解耦下单流程。
- 集成spring-session-redis,支持分布式部署。
- 集成mybatis-xmlreload,支持xml文件热加载。
newbee-mall-pro 项目地址:
一、开发部署
# 1. 克隆项目
git clone git@github.com:wayn111/newbee-mall-pro.git
# 2. 导入项目依赖
将newbee-mall-pro目录用idea打开,导入maven依赖
# 3. 安装Mysql8.0+、Redis3.0+(RediSearch2.0+)、Jdk8+、Maven3.5+
docker安装RediSearch
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:lates
# 4. 导入sql文件
在项目根目录下sql文件夹下,找到`newbee_mall_db_包含秒杀and优惠卷.sql`文件,新建mysql数据库newbee_mall_db,导入其中
# 5. 解压项目图片
将项目根目录下upload.zip文件加压缩到D盘upload文件夹中,eg:D:\\\\upload
# 6. 修改Mysql、Redis连接配置
修改`application-dev.yml`文件中数据连接配置相关信息
# 7. 启动项目
找到NewBeeMallApplication文件,右键`run AdminApplication`,启动项目
# 8. 访问
打开浏览器输入:http://localhost:84/newbeemall
二、更新日志
2023年4月08日更新日志
newbee-mall-pro V2.4.2发布
更新内容:
- 商城首页为你推荐栏目添加协同过滤算法。按照UserCF基于用户的协同过滤、ItemCF基于物品的协同过滤。
实现了两种不同的推荐逻辑。- UserCF:基于用户的协同过滤。当一个用户A需要个性化推荐的时候,我们可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的,而用户A没有听说过的物品推荐给A。
具体代码在ltd.newbee.mall.recommend.core.UserCF
中。 - itemCF:基于物品的协同过滤。预先根据所以用户的历史偏好数据计算物品之间的相似度,然后把与用户喜欢的物品相类似的物品推荐给用户。
具体代码在ltd.newbee.mall.recommend.core.ItemCF
中。
- UserCF:基于用户的协同过滤。当一个用户A需要个性化推荐的时候,我们可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的,而用户A没有听说过的物品推荐给A。
2023年3月27日更新日志
newbee-mall-pro V2.4.1发布
更新内容:
- 集成mybatis-xmlreload,支持xml文件热加载
- 代码优化,通过阿里巴巴代码规范检测
- 升级部分依赖至最新
2023年1月2日更新日志
newbee-mall-pro V2.4.0发布
更新内容:
- Springboot版本升级至3.0.2
- Mybatis plus升级至3.5.3.1支持Springboot3.0
2022年11月17日更新日志
newbee-mall-pro V2.3.0发布
更新内容:
- Springboot版本升级至2.7.5,jdk升级至17
- 使用switch表达式语法扩展,优化switch语句
- 使用instanceof类型匹配语法简化,直接给对象赋值
- 使用文本块优化现有lua脚本显示
- 添加@Serial注解表示序列化字段和方法
- 代码优化,删除无用导入
- 升级项目依赖
bug修复:
- 修复优惠券使用bug
2022年9月04日更新日志
newbee-mall-pro V2.2.0发布
更新内容:
- 后台添加商品标签集成
select2
,支持商品标签不存在即创建
- 添加Spring事件监听机制,解耦下单流程
- 集成Pace,美化商城页面
- 集成RedisSearch中文分词搜索
- 集成
tianai-captcha
滑块验证码 - 优化商城搜索页面逻辑
- 升级项目依赖
- 添加docker-compose部署
bug修复:
- 修复商城搜索bug
- 修复优惠券使用bug
- 修复定时任务bug
2022年5月08日更新日志
商城RediSearch支持商品上下架搜索
2022年4月23日更新日志
商城登录页面添加滑块验证码登录,优化登录体验
- 集成
tianai-captcha
滑块验证码,支持后端验证码校验
2022年4月12日更新日志
使用Spring事件监听机制,解耦下单流程,集成Pace美化商城进度条
- 添加Spring事件监听机制,解耦下单流程,将下单流程拆解为订单校验、生成订单号、发送事件异步保存订单流程
- 集成Pace页面,添加网页进度条,美化商城页面
2022年3月27日更新日志
商城添加RedisSearch搜索,支持中文分词搜索,推荐、新品、价格排序搜索
- 添加RedisSearch测试用例
- 后台添加RedisSearch同步按钮
- 商城支持RedisSearch中文分词搜索
2022年3月21日更新日志
升级版本号至2.1.3,是一个功能完善版本
- 支持分布式部署
- 升级spring版本至2.6.4
- 升级mybatis-plus至3.5.1
- 添加Dockerfile文件支持容器部署
2021年5月30日更新日志
升级版本号至2.1.2,是一个代码优化版本
-
秒杀专区购物车数量显示错误bug修复
-
支付宝沙箱支付bug修复,显示沙箱账号
-
将默认编辑器替换为froala editor
-
添加站点演示模式,通过拦截器对不允许操作的后台路径进行错误提示处理
-
升级pom文件部分依赖
2021年1月14日秒杀接口升级
本次升级主要在原有秒杀功能的基础上进行了完善,秒杀优化如下:
- 秒杀页面静态化
- 添加了秒杀接口限流,基于springAOP实现
- 添加了秒杀接口防止重复提交,基于spring拦截器实现
- 使用令牌桶算法过滤用户请求
- 使用redis-set数据结构判断用户是否买过秒杀商品
- 使用redis配合lua脚本进行原子自减,判断商品缓存库存是否大于0
- 获取商品缓存,判断秒杀商品是否再有效期内
- 执行存储过程(减库存 + 记录购买行为)
- 使用redis-set数据结构记录购买过的用户
- 返回用户秒杀成功VO
- 下单后启用秒杀订单5分钟未支付超期任务
- 订单5分钟内未支付则自动取消订单并回退库存
三、秒杀专区
秒杀专区为用户展示了后台设置的秒杀商品,在秒杀有效期内可以进行商品秒杀操作. 秒杀接口使用了接口限流、Redis以及储存过程提高秒杀操作的tps
四、优惠劵领取
优惠劵页面为用户展示了后台设置的可用优惠劵,在下单时可以使用优惠卷减少下单金额
五、在线截图
商城首页 | 商品搜索 |
---|---|
购物车 | 订单结算 |
订单列表 | 支付页面 |
分类管理 | 会员管理 |
优惠劵管理 | 商品管理 |
秒杀管理 | 订单管理 |
总结
欢迎大家参与使用newbee-mall-pro项目,使用中遇到问题欢迎大家提出。我都会一一查看并回复。再附newbee-mall-pro项目地址:
最后再说一句,感兴趣的朋友可以点赞加关注,你的支持将是我更新动力
上次谁说要Java开源项目来着?来!
写在前面
前几天推荐C/C++开源项目(《》)的时候,就有很多小伙伴留言说想要Java领域的开源项目。
实不相瞒,其实很久以前就推荐过一波优秀的Java开源项目了,内容在此:
当时推荐的几款主要包括后台管理项目、电商项目和微服务项目,今天再来推荐几个实用的Java开源项目,这算是第二波了。
项目一
项目名称: Java
项目简介: 这是一个基于Java的数据结构与算法的实现项目。里面包含了几乎常用所有数据结构的实现,以及诸多算法题和LeetCode习题的Java实现。主要包括:
-
加解密算法 -
进制转换 -
各种数据结构 -
分治 -
动态规划 -
数学类问题 -
搜索问题 -
排序问题 -
LeetCode习题 -
其他杂项算法题等
对于我们的作用: 基于Java语言的数据结构和算法题练手必备!
项目二
项目名称: eladmin
项目简介: eladmin是一个基于 Spring Boot + Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由,对于初学者还是比较友好的。
主要技术点或特性:
-
Spring Boot 2.x -
JPA -
Spring Security -
Redis -
Vue
对于我们的作用: 一套典型的后台管理系统,用的也是一套比较典型的Java后端开发技术,可以帮我们串联起很多后端开发的知识。
项目三
项目名称: jodd
项目简介:
Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.7 Mb
没错,Jodd是一个非常易用和好上手的开源Java微框架,里面包含了一系列平时经常会用到的一些核心程序库、工具类/方法、实用程序/框架等等。有了它,开发人员做起事来会变得非常简易和优雅,引入jodd就能帮我们快速实现某些功能。点赞!
主要技术点或特性:
jodd主要包含:
-
Jodd Libraries(程序库):Json、Email、HTTP、Jerry ... -
Micro-frameworks(微框架):Madvoc、Petite、Proxetta、DbOom ... -
Jodd Utilities(实用工具):BeanUtil、Props、Decora、Cli、Ref ...
对于我们的作用: 一方面当我们想要用Java快速实现一些功能需求的时候,引入jodd就可以帮我们完成很多事情,很多工具和代码都开箱即用,简便高效;另外一方面研究其源码可以帮助我们打开技术视野。
项目四
项目名称: SnowJena
项目简介:
SnowJena是一个基于令牌桶算法实现的分布式无锁限流框架,支持熔断降级,支持动态配置规则,支持可视化监控,开箱即用。可用于Java后端项目常见的本地限流和分布式限流的场景。
主要技术点或特性:
-
支持本地限流 -
支持分布式限流 -
支持黑白名单 -
支持可视化监控等。
另外项目用到了大量设计模式思想,包括单例模式、观察者模式、工厂模式、建造者模式等等。
对于我们的作用: 一是帮助我们学习和实践限流这一常见的技术方案和实现原理,二是帮助我们学习和理解常见的设计模式。
项目五
项目名称: seata
项目简介: Seata 是一款阿里巴巴开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
在 Seata 开源之前,Seata 对应的内部版本在阿里内部一直扮演着分布式一致性中间件的角色,而且应用于历年的双11场景。2019年1月,为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源了。
主要技术点或特性:
-
支持常见主流的微服务框架 -
支持AT模式 -
支持TCC模式 -
支持SAGA模式 -
高可用和强大的横向扩展能力
对于我们的作用: 分布式事务问题几乎是当下后端开发和架构领域最棘手和最有含金量的问题之一,多学点总是好的。
后记
感谢这些优秀的开源作者和优秀的开源项目,我们站在具人的肩膀上,看得更好,走得也更远!
每天进步一点点,Peace!
2020.04.25 深夜
给个[在看],是对程序羊最大的支持
以上是关于推荐一款优秀电商开源项目的主要内容,如果未能解决你的问题,请参考以下文章