Mall4j开源商城,一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的开源商城
Mall4j
商城系统致力于为中小企业打造一个完整、易于维护的开源的电商商城系统,采用现阶段流行技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会员管理、运营管理、内容管理、统计报表、权限管理、设置等模块。开源版本商城属于B2C单商户商城系统,不含营销活动,如需更多模式的商城请查看Mall4j商城官网。
这代码有没有文档呀? 当然有啦,你已经下载了,在doc这个文件夹上,实在不知道,我就给链接出来咯:
gitee:https://gitee.com/gz-yami/mall4j/tree/master/doc
看云:https://www.kancloud.cn/yami/mall4j
开发环境搭建视频(推荐先看下文档再看视频):https://www.bilibili.com/video/BV1eW4y1V7c1
有声音了。如果视频对你有用,记得点赞投币噢。
除了开源版本,我们商业版有B2C商城、B2B2C商城、O2O商城、S2B2C商城、SAAS商城,多端呈现:小程序 + PC + H5 + APP,更多详情请查看官网
Mall4j商城官网 https://www.mall4j.com
Mall4j商城开源版 使用 AGPLv3 开源,请遵守 AGPLv3 的相关条款,或者联系作者获取商业授权(https://www.mall4j.com)
java后台:https://gitee.com/gz-yami/mall4j
vue后台前端:https://gitee.com/gz-yami/mall4v
小程序:https://gitee.com/gz-yami/mall4m
uni-app:https://gitee.com/gz-yami/mall4uni
商业版商城小程序演示
技术 | 版本 | 说明 |
---|---|---|
Spring Boot | 3.0.4 | MVC核心框架 |
Spring Security web | 3.0.4 | web应用安全防护 |
satoken | 1.34.0 | 一个轻量级 Java 权限认证框架,取代spring oauth2 |
MyBatis | 3.5.10 | ORM框架 |
MyBatisPlus | 3.5.3.1 | 基于mybatis,使用lambda表达式的 |
spring-doc | 2.0.0 | 接口文档工具 |
jakarta-validation | 3.0.2 | 验证框架 |
redisson | 3.19.3 | 对redis进行封装、集成分布式锁等 |
hikari | 5.0.1 | 数据库连接池 |
logback | 1.4.5 | log日志工具 |
lombok | 1.18.26 | 简化对象封装工具 |
hutool | 5.8.15 | 更适合国人的java工具集 |
knife4j | 4.0.0 | 基于swagger,更便于国人使用的swagger ui |
通过阿里的代码规范扫描工具(Alibaba Java Coding Guidelines plugin),扫描无异常:
ps: 如果你不清楚如何启动我们的商城,请仔细阅wiki当中的文档
https://gitee.com/gz-yami/mall4j/wikis
开发环境搭建视频(推荐先看下文档再看视频):https://www.bilibili.com/video/BV1eW4y1V7c1
有声音了。如果视频对你有用,记得点赞投币噢。
首先,在Linux服务器上安装Maven。如果你已经安装了Maven,可以跳过此步骤
sudo apt update
sudo apt install maven
如果服务器从repo.maven拉取代码太慢,可以考虑设置源,在~/.m2下新建文件settings.xml,内容如下。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>maven.net.cn</id>
<name>Mirror from Maven in china</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
使用Git从你的代码仓库中拉取最新的代码
git clone https://gitee.com/eddsi/mall4j.git
cd mall4j
如果你没有安装Docker和Docker Compose,请按照以下步骤进行安装
sudo apt update
sudo apt upgrade
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
sudo apt install docker-compose
docker-compose --version
docker --version
如果docker拉取容器镜像太慢就配置代理
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
添加以下内容
[Service]
Environment="HTTP_PROXY=http://your-proxy-server:proxy-port/"
Environment="HTTPS_PROXY=http://your-proxy-server:proxy-port/"
Environment="NO_PROXY=localhost,127.0.0.1"
然后重启
sudo systemctl daemon-reload
sudo systemctl restart docker
在使用Maven打包之前,需要安装OpenJDK 17
sudo apt update
sudo apt install openjdk-17-jdk
将.env.example复制一份,重命名为.env,设置好每一个环境变量,如果缺少相应的环境变量,代码将无法运行。
环境变量MINIO_ACCESS_KEY和MINIO_SECRET_KEY的设置方法,请参考S3部署部分。
使用Maven将项目打包成一个可执行的JAR文件,使用Docker Compose启动所有相关的服务
. .env
mvn clean install
docker-compose up -d
每次启动 Docker 容器时,都会使用由 Maven 构建的 jar 包,而在构建 jar 包时,配置文件中的环境变量已经被固化。因此,每当环境变量发生变动后,必须重新构建容器以应用这些更新
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi mall4j-api
docker rmi mall4j-admin
. .env
mvn clean install
docker-compose up -d
使用Docker Compose部署时,就算配置了代理,也可能遇到无法拉取镜像的问题, 此时,有3种解决方案
1、增加站点,但这种方式受站点稳定性影响,不推荐
2、如果拉取mysql失败,可以不适用docker内置数据库,而使用外部数据库,在.env中配置好环境变量就可以了(记住去数据库控制台添加白名单)
3、直接加载已有镜像,具体步骤如下
首先要手动找到镜像(自行解决),然后将文件放到某个路径下,比如/home/user。 最后在目标主机上使用docker load命令加载这些镜像
docker load -i /path/to/destination/openjdk.tar
docker load -i /path/to/destination/mysql.tar
docker load -i /path/to/destination/redis.tar
.env中设置好MINIO_ROOT_USER、MINIO_ROOT_PASSWORD、MINIO_SERVER_URL 这三个环境变量,然后执行
docker-compose -f docker-compose-minio.yml up -d
注意!MINIO_ROOT_USER=MINIO_ACCESS_KEY
MINIO_ROOT_PASSWORD=MINIO_SECRET_KEY
请查看./front-end/mall4v/README.md
请查看./front-end/mall4m/README.md
请查看./front-end/mall4uni/README.md
-
Mall4j商城官网 https://www.mall4j.com
-
Mall4j商城官方技术QQ 1群:722835385(3000人群已满)
-
Mall4j商城官方技术QQ 2群:729888395
-
如需购买商城商业版源码,请联系商务微信
- wxjava: https://github.com/Wechat-Group/WxJava
- sa-token: https://gitee.com/dromara/sa-token
https://gitee.com/gz-yami/mall4cloud