当前位置: 首页 > 软件库 > 数据库相关 > >

mall

授权协议 Apache-2.0 License
开发语言 Java
所属分类 数据库相关
软件类型 开源软件
地区 不详
投 递 者 郦翰学
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

mall

友情提示

  1. 快速体验项目在线访问地址
  2. 全套学习教程《mall学习教程》
  3. 微服务版本:基于Spring Cloud Hoxton & Alibaba的项目:mall-swarm
  4. 专属学习路线:学习不走弯路,整理了套非常不错的《mall专属学习路线》
  5. 项目交流:想要加群交流项目的朋友,可以加入mall项目交流群

前言

mall项目致力于打造一个完整的电商系统,采用现阶段流行技术实现。

项目文档

项目介绍

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

项目演示

后台管理系统

前端项目mall-admin-web地址:https://github.com/macrozheng/mall-admin-web

项目演示地址: http://www.macrozheng.com/admin/index.html

后台管理系统功能演示

前台商城系统

前端项目mall-app-web地址:敬请期待......

项目演示地址:http://www.macrozheng.com/app/mainpage.html

前台商城系统功能演示

组织结构

mall
├── mall-common -- 工具类及通用代码
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码
├── mall-security -- SpringSecurity封装公用模块
├── mall-admin -- 后台商城管理系统接口
├── mall-search -- 基于Elasticsearch的商品搜索系统
├── mall-portal -- 前台商城系统接口
└── mall-demo -- 框架搭建时的测试代码

技术选型

后端技术

技术 说明 官网
SpringBoot 容器+MVC框架 https://spring.io/projects/spring-boot
SpringSecurity 认证和授权框架 https://spring.io/projects/spring-security
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatisGenerator 数据层代码生成 http://www.mybatis.org/generator/index.html
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
RabbitMQ 消息队列 https://www.rabbitmq.com/
Redis 分布式缓存 https://redis.io/
MongoDB NoSql数据库 https://www.mongodb.com
LogStash 日志收集工具 https://github.com/elastic/logstash
Kibina 日志可视化查看工具 https://github.com/elastic/kibana
Nginx 静态资源服务器 https://www.nginx.com/
Docker 应用容器引擎 https://www.docker.com
Jenkins 自动化部署工具 https://github.com/jenkinsci/jenkins
Druid 数据库连接池 https://github.com/alibaba/druid
OSS 对象存储 https://github.com/aliyun/aliyun-oss-java-sdk
MinIO 对象存储 https://github.com/minio/minio
JWT JWT登录支持 https://github.com/jwtk/jjwt
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
Hutool Java工具类库 https://github.com/looly/hutool
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Swagger-UI 文档生成工具 https://github.com/swagger-api/swagger-ui
Hibernator-Validator 验证框架 http://hibernate.org/validator

前端技术

技术 说明 官网
Vue 前端框架 https://vuejs.org/
Vue-router 路由框架 https://router.vuejs.org/
Vuex 全局状态管理框架 https://vuex.vuejs.org/
Element 前端UI框架 https://element.eleme.io
Axios 前端HTTP框架 https://github.com/axios/axios
v-charts 基于Echarts的图表框架 https://v-charts.js.org/
Js-cookie cookie管理工具 https://github.com/js-cookie/js-cookie
nprogress 进度条控件 https://github.com/rstacruz/nprogress

架构图

系统架构图

系统架构图

业务架构图

系统架构图

模块介绍

后台管理系统 mall-admin
前台商城系统 mall-portal

功能结构图-前台.jpg

开发进度

项目开发进度图

环境搭建

开发工具

工具 说明 官网
IDEA 开发IDE https://www.jetbrains.com/idea/download
RedisDesktop redis客户端连接工具 https://github.com/qishibo/AnotherRedisDesktopManager
Robomongo mongo客户端连接工具 https://robomongo.org/download
SwitchHosts 本地host管理 https://oldj.github.io/SwitchHosts/
X-shell Linux远程连接工具 http://www.netsarang.com/download/software.html
Navicat 数据库连接工具 http://www.formysql.com/xiazai.html
PowerDesigner 数据库设计工具 http://powerdesigner.de/
Axure 原型设计工具 https://www.axure.com/
MindMaster 思维导图设计工具 http://www.edrawsoft.cn/mindmaster
ScreenToGif gif录制工具 https://www.screentogif.com/
ProcessOn 流程图绘制工具 https://www.processon.com/
PicPick 图片处理工具 https://picpick.app/zh/
Snipaste 屏幕截图工具 https://www.snipaste.com/
Postman API接口调试工具 https://www.postman.com/
Typora Markdown编辑器 https://typora.io/

开发环境

工具 版本号 下载
JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Mysql 5.7 https://www.mysql.com/
Redis 5.0 https://redis.io/download
MongoDB 4.2.5 https://www.mongodb.com/download-center
RabbitMQ 3.7.14 http://www.rabbitmq.com/download.html
Nginx 1.10 http://nginx.org/en/download.html
Elasticsearch 7.6.2 https://www.elastic.co/downloads/elasticsearch
Logstash 7.6.2 https://www.elastic.co/cn/downloads/logstash
Kibana 7.6.2 https://www.elastic.co/cn/downloads/kibana

搭建步骤

Windows环境部署

Docker环境部署

相关环境部署

公众号

学习不走弯路,关注公众号「macrozheng」,回复「学习路线」,获取mall项目专属学习路线!

加微信群交流,公众号后台回复「加群」即可。

公众号图片

许可证

Apache License 2.0

Copyright (c) 2018-2021 macrozheng

 相关资料
  • 问题内容: 我一直在阅读有关Linux内存不足的情况,手册页中的以下段落让我开始思考: 默认情况下,Linux遵循乐观的内存分配策略。这意味着当malloc()返回非NULL时,不能保证内存确实可用。这是一个非常糟糕的错误。万一发现系统内存不足,一个臭名昭著的OOM杀手将杀死一个或多个进程。[…] 考虑到操作员的new实现最终会在某个时刻调用malloc,是否可以保证new实际上会在Linux上抛

  • 问题内容: 在Linux上,如果我愿意,malloc实际上是做什么的? 我确定它会为分配分配一个虚拟地址(通过遍历空闲列表并在必要时创建新的映射),但是它实际上是否创建了1 GiB的交换页?还是当您实际触摸它们时就创建地址范围并创建页面? (我之所以指定Linux,是因为该标准在这些细节上没有任何说明,但是我很想知道其他平台也可以这样做。) 问题答案: Linux确实也推迟了页面分配。“乐观的内存

  • 问题内容: 每次从stdin读取字母“ u”时,此代码段将分配2Gb,并且在读取“ a”后将初始化所有分配的字符。 我在具有3Gb内存的linux虚拟机上运行此代码。在使用htop工具监视系统资源使用情况时,我已经意识到malloc操作不会反映在资源上。 例如,当我仅输入一次“ u”(即分配2GB的堆内存)时,我看不到htop中的内存使用量增加2GB。只有当我输入“ a”(即初始化)时,我才会看到

  • 问题内容: 如果malloc / free是作为libc中的库例程实现的,那么它是在 sbrk syscall还是 mmap syscall或其他东西之上实现的呢? 通常, sys / syscall.h 中声明的函数是否包含目标计算机中的所有系统调用? 问题答案: 和是标准C库函数,其是由每个C实现来实现。 C标准仅定义了这些函数的行为方式以及预期的行为。在每种实现方式中如何实现它们。 简而言之

  • 问题内容: 因此,我有一个分配256 MB内存的程序,在用户按下ENTER键后,它将释放内存并终止。 我多次运行了该程序并将它们分别作为背景,直到不再有足够的内存可以分配。但是,那永远不会发生。我运行了linux 命令,即使在多次运行该程序之后,可用内存也不会减少多达256 MB。 但是,另一方面,如果我使用而不是则存在巨大差异: 现在,如果我运行该程序并使其后台运行,然后重复执行,则每次运行它时

  • 问题内容: 什么回报? 答案会一样吗? Linux GCC的输出: 输出每次都会保持变化。这是标准答案吗?为什么除了学术研究之外,还有谁会对获得这样的指示感兴趣? 编辑: 如果返回伪指针,则以下内容如何工作: 编辑: 以下代码为每次迭代输出“可能”。为什么不失败? 问题答案: 其他人已经回答了如何工作。我将回答您提出的尚未回答的问题之一(我认为)。问题是关于: 什么回报?答案会一样吗? 该标准规定

  • 问题内容: 平台之间可能有所不同,但是 当我使用gcc编译并运行下面的代码时,每次在ubuntu 11.10中获得0。 为什么即使有calloc,malloc的行为也是如此? 难道就意味着即使您不希望有时将值初始化为0,也会有不必要的性能开销吗? 编辑:哦,我以前的示例不是初始化,而是碰巧使用“新鲜”块。 我恰恰在寻找的是为什么它在分配一个大块时将其初始化: 但是,感谢您指出进行分配时存在安全原因

  • 问题内容: 我有一个带有父进程和子进程的程序。在fork()之前,父进程称为malloc(),并在其中填充了一些数据。在fork()之后,孩子需要该数据。我知道我可以使用管道,但是以下代码似乎可以工作: 输出为: 我知道在子级中可以使用在堆栈上分配的数据,但是似乎在子级中也可以使用在堆上分配的数据。同样,子代不能修改堆栈上父代的数据,子代不能修改堆上父代的数据。因此,我假设孩子获得了自己的堆栈和堆