目录
一、项目简介
1.项目模式
电商模式:市面上有5种常见的电商模式,B2B、B2C、C2B、C2C、O2O;
1.B2B模式
B2B(Business to Business),是指 商家与商家建立的商业关系。
如:阿里巴巴
2.B2C模式
B2C(Business to Consumer),就是我们经常看到的供应商直接把商品卖给用户,即“商家对客户”模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城。
3.C2B模式
C2B(Customer to Business),即消费者对企业(客户对商家)。先有消费者需求产生而后有企业生产,即先有消费者提出需求,后有生产企业按需求组织生产。
4.C2C模式
C2C(Customer to Consumer),客户之间自己把东西放上网去卖,即“客户对客户”,如:淘宝,闲鱼。
5.O2O模式
O2O即(Online To Ofinle),也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。线上快速支付,线下优质服务。即“线上对线下”,如:饿了么,美团,淘票票,京东到家。
2.技术栈
- 前端 html css js jquery freemarker vue(注意:vue目前是还没有用到的,要做完还要开发前台项目)
- 基础javaSE javaEE
- 框架 spring springMVC SpringBoot mybatis mybatis-plus
- 安全 shiro(spring security)
- 微服务 springCloud SpringCloud alibaba
- 数据库 mysql
- 测试 junit Jmeter
3.项目架构图
解析:
多端(PC,手机端,平板)--->网络(防火墙)--->nginx(Lvs搭建Nginx)--->网关Gateway(用户身份认证)--->nacos(注册中心,配置中心)--->openFeign(微服务调用)--->sentinel(限流)/ seata(分布式事务)
4.模块
模块名 | 端口 | 名称 | 说明 |
---|---|---|---|
zmall | 父工程 | maven项目 | |
zmall-common | 公共 | maven项目 | |
zmall-user | 8010 | 用户服务 | Spring Initializr |
zmall-product | 8020 | 产品服务 | |
zmall-cart | 8030 | 购物车服务 | |
zmall-order | 8040 | 订单服务 | |
zmall-play | 8050 | 支付服务 | |
zmall-kill | 8060 | 秒杀服务 | |
zmall-gateway | 8000 | 网关服务 |
5.案例演示
(注意:在切换新的工作区间的时候一定要记得修改maven配置,不然会默认下载C盘)
① 主模块
1.在idea中基于maven方式创建主模块zmall,创建成功之后删除src目录即可。
2.配置主模块pom.xml
2.1 依赖版本锁定
<!--依赖版本的锁定-->
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.2.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
2.2 dependencyManagement配置
<dependencyManagement>
<dependencies>
<!-- SpringBoot 依赖配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring-cloud依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring-cloud-alibaba依赖配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.3 设置maven编译版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2.4 子模块定义(要先创建好子模块在定义)
注意:除了创建maven项目才会自动导入,其他的就要手动添加子模块。
<modules>
<module>zmall-common</module>
<module>zmall-user</module>
</modules>
② zmall-common子模块
1.基于maven方式创建zmall-common公共子模块。注:zmall-common公共模块只为其他模块提供依赖支持。
2.配置pom.xml
<dependencies>
<!-- mybatis plus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
③ zmall-user子模块
1.基于Spring Initializr 方式创建zmall-user用户模块。
2.配置pom.xml。设置父模块,并添加zmall-common公共模块的依赖支持。
<!-- 父模块 -->
<parent>
<groupId>com.zking.zmall</groupId>
<artifactId>zmall</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>com.zking.zmall</groupId>
<artifactId>zmall-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
易买网网页素材3.添加登录页面及公共资源(js/css/images)
① 将资料目录中的《易买网网页素材.zip》解压后,将其中Login.html和js/css/images等等添加到项目的templates和static目录下,最好请将Login.html重命名为login.html
② 导入资料目录中的common目录到项目的templates目录下
最终导入的效果图如下:
③ 在login.html页面中的头部声明<!DOCTYPE html ....>修改成<!DOCTYPE html>(支持H5风格)
④ 在login.html页面中通过<#include>指令引入common目录中的head.html
<#include 'common/head.html'>
⑤ 创建UserController并定义login.html页面跳转方式
@Controller
public class UserController {
@RequestMapping("/login.html")
public String login(){
return "login";
}
}
⑥ 配置application.yml
server:
port: 8010
spring:
application:
name: zmall-user
datasource:
#type连接池类型 DBCP,C3P0,Hikari,Druid,默认为Hikari,HikariDataSource属于Mybatisplus依赖
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/zmall?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: 123456
freemarker:
suffix: .html
template-loader-path: classpath:/templates/
# mvc:
# static-path-pattern: /static/**
⑦ 创建数据库,导入数据到MySQL数据库里
zmall-user结构如下:
最终运行的效果如下图所示:访问地址:http://localhost:8010/login.html