gulimall商城2021

本文介绍谷粒商城项目,该项目是电商系统,采用前后端分离,基于SpringCloud等技术,用Docker容器化部署。包含前台商城和后台管理系统。文中给出源码地址、API接口文档,还介绍项目架构、技术栈、启动顺序,以及nacos安装步骤和跨域问题解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码地址(git clone即用):

gulimall商城前端源码:https://github.com/liuwen766/renren-fast-vue
gulimall商城后端源码:https://github.com/liuwen766/gulimall
nacos本地源码服务安装:https://github.com/liuwen766/nacos

项目架构

本项目来自尚硅谷,资源链接:https://www.bilibili.com/video/BV1np4y1C7Yf在这里插入图片描述

谷粒商城简介

前言

gulimall 项目致力于打造一个完整的电商系统,采用现阶段流行技术来实现,采用前后端分离继续编写。

项目API接口文档

项目介绍

gulimall(谷粒商城) 项目是一套电商项目,包括前台商城系统以及后台管理系统,基于 SpringCloud + SpringCloudAlibaba + MyBatis-Plus实现,采用 Docker 容器化部署。前台商城系统包括:用户登录、注册、商品搜索、商品详情、购物车、下订单流程、秒杀活动等模块。后台管理系统包括:系统管理、商品系统、优惠营销、库存系统、订单系统、用户系统、内容管理等七大模块。

项目演示

前台部分功能演示效果

UUvLAU.png

UUv7n0.png

后端登录界面

UUvXh4.png

主页面

UUv51s.png

后台部分功能

UUvoXq.th.pngUUvONF.th.pngUUvHBV.th.pngUUvIcn.th.png

组织结构

gulimall
├── gulimall-common -- 工具类及通用代码
├── renren-generator -- 人人开源项目的代码生成器
├── gulimall-auth-server -- 认证中心(社交登录、OAuth2.0、单点登录)
├── gulimall-cart -- 购物车服务
├── gulimall-coupon -- 优惠卷服务
├── gulimall-gateway -- 统一配置网关
├── gulimall-order -- 订单服务
├── gulimall-product -- 商品服务
├── gulimall-search -- 检索服务
├── gulimall-seckill -- 秒杀服务
├── gulimall-third-party -- 第三方服务
├── gulimall-ware -- 仓储服务
└── gulimall-member -- 会员服务

技术选型

后端技术

技术说明官网
SpringBoot容器+MVC框架https://spring.io/projects/spring-boot
SpringCloud微服务架构https://spring.io/projects/spring-cloud
SpringCloudAlibaba一系列组件https://spring.io/projects/spring-cloud-alibaba
MyBatis-PlusORM框架https://mp.baomidou.com
renren-generator人人开源项目的代码生成器https://gitee.com/renrenio/renren-generator
Elasticsearch搜索引擎https://github.com/elastic/elasticsearch
RabbitMQ消息队列https://www.rabbitmq.com
Springsession分布式缓存https://projects.spring.io/spring-session
Redisson分布式锁https://github.com/redisson/redisson
Docker应用容器引擎https://www.docker.com
OSS对象云存储https://github.com/aliyun/aliyun-oss-java-sdk

前端技术

技术说明官网
Vue前端框架https://vuejs.org
Element前端UI框架https://element.eleme.io
thymeleaf模板引擎https://www.thymeleaf.org
node.js服务端的jshttps://nodejs.org/en

架构图

系统架构图

UUvRAS.png

业务架构图

UUvb7T.png

环境搭建

开发工具
工具说明官网
IDEA开发Java程序https://www.jetbrains.com/idea/download
RedisDesktopredis客户端连接工具https://redisdesktop.com/download
SwitchHosts本地host管理https://oldj.github.io/SwitchHosts
X-shellLinux远程连接工具http://www.netsarang.com/download/software.html
Navicat数据库连接工具http://www.formysql.com/xiazai.html
PowerDesigner数据库设计工具http://powerdesigner.de
PostmanAPI接口调试工具https://www.postman.com
Jmeter性能压测工具https://jmeter.apache.org
TyporaMarkdown编辑器https://typora.io
开发环境
工具版本号下载
JDK1.8https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Mysql5.7https://www.mysql.com
RedisRedishttps://redis.io/download
Elasticsearch7.6.2https://www.elastic.co/downloads
Kibana7.6.2https://www.elastic.co/cn/kibana
RabbitMQ3.8.5http://www.rabbitmq.com/download.html
Nginx1.1.6http://nginx.org/en/download.html

注意:以上的除了jdk都是采用docker方式进行安装,详细安装步骤可参考百度!!!

搭建步骤

Windows环境部署

  • 修改本机的host文件,映射域名端口
192.168.77.130	gulimall.com
192.168.77.130	search.gulimall.com
192.168.77.130  item.gulimall.com
192.168.77.130  auth.gulimall.com
192.168.77.130  cart.gulimall.com
192.168.77.130  order.gulimall.com
192.168.77.130  member.gulimall.com
192.168.77.130  seckill.gulimall.com
以上端口换成自己Linux的ip地址
  • 修改Linux中Nginx的配置文件
1、在nginx.conf中添加负载均衡的配置    
upstream gulimall {
        server 192.168.43.182:88;
    }
2、在gulimall.conf中添加如下配置
server {
    listen       80;
    server_name  gulimall.com  *.gulimall.com hjl.mynatapp.cc;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    #配置静态资源的动态分离
    location /static/ {
        root   /usr/share/nginx/html;
    }

    #支付异步回调的一个配置
    location /payed/ {
        proxy_set_header Host order.gulimall.com;        #不让请求头丢失
        proxy_pass http://gulimall;
    }

    location / {
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
        proxy_set_header Host $host;        #不让请求头丢失
        proxy_pass http://gulimall;
    }
  • 克隆前端项目 renren-fast-vuenpm run dev 方式去运行
  • 克隆整个后端项目 gulimall ,并导入 IDEA 中完成编译

如果你喜欢,要是觉得对你有帮助的话,请点个赞是对我最大的支持!

项目技术栈

基础篇

1.分布式基础概念

  • 微服务、注册中心、配置中心、远程调用、Feign、网关

2.基础开发

  • spingboot2.0、springcloud、mybatis-plus、vue组件化、对象存储

3.环境

  • Vagrant、Linux、Docker、Mysql、Redis、逆向工程&人人开源

4.开发规范

  • 数据校验JSR303、全局异常处理、全局统一返回、全局跨域处理等;
  • 枚举状态、业务状态码、VO/TO、逻辑删除;
  • Lombok、@Data、@Slf4j。

高级篇

集群篇

项目启动顺序

step1:启动项目依赖的sql数据库服务器。【若未进行数据库的初始化,则进行sql文档的初始化】。

step2:启动nacos服务【我用的的是本地源码安装的nacos】,在nacos上按需配置后端服务的各种配置

step3:启动所有的后端服务。【所有的服务会自动注册在nacos中,并在nacos上发现所有注册在nacos上的服务,这就是[服务注册]与[服务发现]】

step4:启动前端服务。前端服务基于VUE框架。【前后端的通信统一会经过网关gateway服务,网关会重写路径,将请求路由到指定的后端服务】

step5:登录页面。登录账号admin/admin。

sql文档

项目原始sql在./tools/sql初始化/;补充的sql在./tools/sql初始化/sql2更改表;

naco源码 服务本地安装步骤

step1:

从github上,下载nacos最新的源码到本地:

git clone https://github.com/alibaba/nacos.git

step2:

本地编译(建议用阿里云的maven仓库):

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

step3:

源码运行时,通常使用的是单机模式,因此需要在启动参数中进行设置,在jvm的启动参数中,添加

-Dnacos.standalone=true

step4:

编译完成的nacos源码导入到idea开发工具中;进入到nacos-console模块下,启动该模块下的com.alibaba.nacos.Nacos类

启动成功,请享用。

http://localhost:8848/nacos/index.html

登录名/密码 nacos/nacos

跨域

不同源的请求会引发跨域问题。

跨域问题可以简单理解为页面请求的url字符串对比。

——2021.2.27

解决跨域问题的办法:

方法一:使用nginx服务器,将前后端项目都部署在nginx服务器上,这样页面请求就会一致,不会引发跨域问题。

方法二:通过配置,允许可以跨域的请求。(全局配置或者注解配置)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的程序猿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值