所以当TJ君今天留意到这个开源项目的时候,第一反应就是,可用!推荐!
mall4cloud
说到mall4cloud,不得不先说下Mall4j。
Mall4j是一个商用的提供多元化电商服务,满足企业多场景业务需求,为垂直行业提供专业的电商解决方案网站,提供多种成熟的电商配套服务,而mall4cloud则正是它的开源版本!
此开源版本,是一个基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,非常良心的没有其他二次封装,真正做到完全开源,小伙伴们无论是学习,还是二次开发,都是非常合适的一个项目。
项目使用 AGPLv3 开源规则,采用主流的互联网技术架构,支持集群部署、服务注册和发现以及拥有完整的订单流程,同时还拥有不错的UI设计效果。
先看看整体目录结构及应用分层:
其中各项分层解释是这样的:
- VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
- DTO(Data Transfer Object):数据传输对象,前端像后台进行传输的对象,类似于param。
- BO(Business Object):业务对象,内部业务对象,只在内部传递,不对外进行传递。
- Model:模型层,此对象与数据库表结构一一对应,通过 Mapper 层向上传输数据源对象。
- Controller:主要是对外部访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。为了简单起见,一些与事务无关的代码也在这里编写。
- FeignClient:由于微服务之间存在互相调用,这里是内部请求的接口。
- Controller:主要是对内部访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。为了简单起见,一些与事务无关的代码也在这里编写。
- Service 层:相对具体的业务逻辑服务层。
- Mapper持久层:数据访问层,与底层 MySQL进行数据交互。
- Listener:监听 RocketMQ 进行处理,有时候会监听easyexcel相关数据。
- Manager 层:通用业务处理层,主要有三个特点。
- 个 DAO 的组合复用。
了解了这些我们还可以看下项目的架构图:
然后还可以看下实际运行的效果:
订单界面
平台管理界面
小程序界面
项目还提供了一系列的开发及搭建文档,供小伙伴们在使用过程中查看: