关于博主

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

                                      微信公众号:  啃饼思录

                                    QQ: 2810706745(i思录)

写在前面

嘿,小伙伴们好久不见。最近难得有空,出一套关于如何利用SSM(Spring、Spring MVC,Mybatis)来搭建二手市场交易平台的教程。本次教程利用的是java语言,最好是使用Jdk1.8的版本。

获取更多教程,请点击注册啃饼网:http://www.licheetools.top

开发流程

**环境搭建:**这里以windows10 64Bit为环境进行环境搭建。具体包括jdk的安装,Tomcat的安装,nginx的安装。
**数据库及接口的配置:**介绍表的设计思路,接口的设计思路
**项目初始化:**介绍Spring,Spring MVC,MyBatis的使用
**用户模块:**介绍个人中心资料修改,商品收藏等
**分类模块:**介绍如何进行二手商品类目的分类以及插件的使用
**商品模块:**主要介绍商品的富文本展示
**购物车模块:**介绍添加商品,更新购物车,查询购物车数量,价格动态显示
**收货地址模块:**添加地址,删除更新地址,地址详情,地址的列表等
**支付模块:**介绍支付宝的支付功能,回调功能,查询订单的支付状态,生成支付的二维码
**订单模块:**分为前台和后台,前台就是创建订单,获取订单的信息,列表的详情页,取消订单;后台负责订单的搜索,订单的详情,订单的发货
**云服务器模块:**介绍云服务器的配置与项目的打包上线。

淘宝技术架构

这里我找了一篇文章,大家可以了解一下:淘宝技术架构

在之前我们都是采用all in one的方式来进行项目的发布与运行:就是你的Application Server里面包含了Application ,File和DataBase,这样做的好处就是节省开支,但坏处就是很容易造成服务器挂掉。

然后就各自分开,各自采用不同的服务器:Application Server,File Server,DataBase Server,这种能防止File Server挂掉以后,系统还能运行,但是还是不能满足我们高并发的要求(因为你每次数据请求都必须直接与数据库进行连接,当访问量达到一定数量的时候,数据库响应时间也是很费资源),于是架构又开始升级。

我们知道80%的数据访问只存在于20%的数据上面,而且我们不希望每次都是从数据库中取出数据,于是我们可以使用缓存。缓存分为很多种,本地缓存和远程缓存。本地缓存称为local cache,远程缓存称为Remote Disteibuted Cache。我从网上找了几张图片,大家可以了解一下:

演化过程:在Application Server这里添加添加了一个负载均衡调度器,也变成了一个集群。


利用负载均衡调度器解决服务器的Session共享的问题,但是也有缺点:假设Application1的服务器重启了,那么它上面所有的sessio就全没了;然后就是我们的负载均衡调度器成了一个有状态的服务器,实现容灾就有麻烦。如果你让每个session都在各个服务器里面有一个备份,这的确能解决这个问题,但是当数量达到一个级别以后,这种方式是很费资源的。那么你又说,为我们可以让browser在提交数据的同时带上cookie,这样就不用担心服务器不能正常识别资源了,但是你想过没有,cookie的长度是有限的而且是有时间限制的,而且还是存放在本地,它的安全性就等不到保证了。


于是又有人提出了一种新的方式,我们可以专门弄一个session服务器,用于存放session。当你想获取应用的时候,可以从session服务器获取session。但是我们需要注意这个session server是单点的,我们最好把它也做成一个集群。

现在我们继续回到前面的架构图,我们现在发现数据库是一个瓶颈,我们可以对它进行读写分离:

我们这里的Slave是辅库,Master是主库,我们把所有的读的操作都让Slave辅库来进行,把所有的写的操作都让Master主库负责。这样做的话,把你Application也需要做相应的变化:

在这个过程中,安全性,数据分析,监控,反作弊等都值得大家去注意;
然后随着技术的发展,SOA架构,服务化,消息队列,任务调度,多机房等方向发展。

环境搭建

jdk的安装

我这里使用的是jdk10的版本,你可以使用jdk7,8,9,再低的版本就不建议使用了。
关于jdk的安装,我这里就不介绍了,直接开启传送大门:java的jdk安装(超详细版)

Tomcat的安装

Tomcat它是一个Web容器,javaEE项目都存放在里面。
同样Tomcat的安装,我也是直接开启传送大门,注意一下这里推荐使用Tomcat8系列: windows下tomcat的安装配置
下面简单说一下Tomcat的启动与关闭:
启动使用:在配置环境的bin目录下使用startup.bat命令;
关闭使用:在配置环境的bin目录下使用shutdown.bat命令。
就是${CATALINA_HOME}/bin/startup.bat或者是${CATALINA_HOME}/bin/shutdown.bat
对了,你还需要配置UTF-8的字符集:

F:\tomcat\apache-tomcat-8.5.34\conf\server.xml

我的路径是这里,你打开它,找到第69-71行代码:

添加这一行代码:

URIEncoding="UTF-8"

注意:截图中之所以有是因为我已经配置完了,之前是没有的。

Maven的安装

Maven全称是Apache Maven Project–Apache的优秀开源项目,Maven是java项目的构建和管理工具。Maven的用途很大,这里简单说一下:
1、用Maven可以方便的创建项目,基于archetype可以创建多种类型的java项目;
2、Maven仓库对jar包(artifact)进行统一管理,避免jar文件的重复拷贝和版本冲突;
3、团队开发,Maven管理项目的release(正式版本)和snapshot(开发版本)版本,方便多模块(module)项目的各个模块之间的快速集成

关于Maven的安装,大家可以参考这篇文章:Maven安装教程详解
不过要说明的是,如果下载速度过慢,建议使用镜像下载:
maven下载

随便点击一个,然后选择binaries这个文件夹,选择以.zip结尾的文件就可以了。
然后安装按照文章里面的说明就可以了,最后你可以在dos状态下使用mvn -version来验证安装是否正确:

还要注意一下,就是我的Maven项目地址已经发生了改变,由默认的位置变为:F:\Maven\repo,这一点你注意一下。

下面是一些常用的maven命令:
清除命令:mvn clean
编译命令: mvn compile
打包命令:mvn package
跳过单元测试:mvn clean package -Dmaven.test.skip=true

vsftpd安装

vsftpd 是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件,但是它是适用于linux系统,要想在windows上搭建是一件非常麻烦的事。我从网上找了很久,找到了一个小而巧的FTP Server,不需要安装,点击之后输入用户和密码就能使用。

第一步,从我的gitee上面下载一个名为FTP Server.zip的压缩文件,解压就只有下面2个文件:

你单击第二个exe,设置账户和密码,以及ftp的路径,然后去浏览器地址栏输入:
ftp://localhost,就完成了自己FTP Server的搭建。

接下来是nginx的安装。

nginx的安装

nginx是一款轻量级的web服务器,也是一款反向代理服务器;它的功能很强大,这里简单介绍一下:
1、可直接支持Rails和PHP的程序;
2、可作为HTTP反向代理服务器;
3、作为负载均衡服务器;
4、作为邮件代理服务器;
5、帮助实现前端动静分离;
nginx的特点:高稳定,高性能,资源占用少,功能丰富,模块化结构,支持热部署

具体的安装我这里就不介绍了,大家可以参考这篇文章就行了:Nginx在windows上安装 及 Nginx的配置及优化

安装完以后,打开C:\Windows\System32\drivers\etc\hosts文件,新增一行代码:
127.0.0.1 store.licheetools.top然后你去浏览器地址栏中输入127.0.0.1store.licheetools.top,或者localhost就能正常访问到nginx的首页了。(如果访问不了,请关闭之前开启的FTP Server)

接下来就是相关文件的配置了,首先找到nginx的安装目录下面的conf文件:F:\Maven\nginx-1.14.1\conf,接着我们打开其中的nginx.conf文件:

我们往下拉,我们在大概第95行的位置添加下面一行代码:

include vhost/*.conf;

截图是我已经配置好的,目的是让大家对此有一个更清醒的认识。

接着在nginx.conf文件的同级目录下面新建vhost文件夹(名字你可以不这样命令,但是必须和前面我们在nginx.conf文件中定义的代码名一样,否则就会出现找不到文件的bug)

然后在里面新建名为image.licheetools.top.conf的文件,必须与.conf结尾。你可以不命令这个名字,但怕你后面不会正常运行,建议还是按照我的命令进行运行吧。(这里你可以在F:\Maven\envy\img文件夹里面放置一张名为test.jpg的图片,后面测试会用上)

在里面写入以下代码:

server {listen 80;autoindex off;server_name image.licheetools.top;   #这个名称必须和文件名一致access_log c:/access.log combined;index index.html index.htm index.jsp index.php;#error_page 404 /404.html;if ( $query_string ~* ".*[\;'\<\>].*" ){return 404;}location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {deny all;}location / {root F:\Maven\envy\img;   #这个就是前面的那个ftp server的路径add_header Access-Control-Allow-Origin *;}
}

然后打开:C:\Windows\System32\drivers\etc\hosts文件,修改刚才新增的那行代码:127.0.0.1 image.licheetools.top。保存完以后,我们重新打开一个cmd命令,进入到nginx的安装目录。输入nginx.exe -t,如果配置文件没有报错,继续输入nginx.exe -s reload。然后你去浏览器地址栏中输入http://image.licheetools.top\test.jpg就能正常访问到我们在F:\Maven\envy\img下面放置的test.jpg文件了。(如果访问不了,请关闭之前开启的FTP Server)

上面介绍的是文件转发的测试,接下来我们来测试一下端口的转发。

端口转发测试

我们继续在vhost里面新建名为tomcat.licheetools.top.conf的文件,必须与.conf结尾。你可以不命令这个名字,但怕你后面不会正常运行,建议还是按照我的命令进行运行吧。(这里你可以在F:\Maven\envy\img文件夹里面放置一张名为test.jpg的图片,后面测试会用上)

在里面写入以下代码:

server {listen 80;autoindex on;server_name tomcat.licheetools.top;    #这个名称必须和文件名一致access_log c:/access.log combined;index index.html index.htm index.jsp index.php;#error_page 404 /404.html;if ( $query_string ~* ".*[\;'\<\>].*" ){return 404;}location / {proxy_pass http://127.0.0.1:8080;add_header Access-Control-Allow-Origin *;}
}

然后打开:C:\Windows\System32\drivers\etc\hosts文件,继续新增的一行代码:127.0.0.1 tomcat.licheetools.top。保存完以后,我们重新打开一个cmd命令,进入到tomcat安装目录的bin目录,在里面执行startup.bat,来启动我们的tomcat服务器。此时你去浏览器地址栏中输入http://localhost:8080/看是不是出现了tomcat的默认首页。

紧接着我们另开启一个新的cmd命令行,进入到nginx的安装目录,输入nginx.exe -s reload

然后你去浏览器地址栏中输入http://tomcat.licheetools.top就能正常访问到tomcat的默认首页。(如果访问不了,请关闭之前开启的FTP Server)

mysql的安装

关于mysql的安装,我在这篇笔记里面有过详细的介绍,这里就不再介绍了。
零基础使用Django2.0.1打造在线教育网站(二):开发环境配置

mysql的登录:在dos状态下使用mysql -uroot -p然后输入密码进行登录。
mysql的配置(注意这里所说的配置不光对windows有用,对于linux或者unix也是有用的)SQL语句结尾的分号必须带上,表示语句结束
(1)查看目前mysql的用户:

select user,host from mysql.user;

(2)修改root密码:

set password for root@localhost=password('yourpassword');set password for root@127.0.0.1=password('yourpassword');

(3)使用exit退出mysql;
(4)重新登录mysql输入mysql -u root -p;
(5)输入密码登录成功;
(6)删除匿名用户,执行下面的命令:
查看是否有匿名用户:select user,host from mysql.user;
删除匿名用户:delete feom mysql.user where user = '';
再次查看:select user,host from mysql.user;
刷新,使上述操作生效:flush privilgges;
(7)插入mysql新用户:

insert into mysql.user(Host,User,Password)values("localhost","yourusername",password("yourpassword"));

刷新,使上述操作生效:flush privilgges;
(8)创建新的数据库(database)

create database 'databasename' default character set utf8 collate utf8_general_ci;

(9)本地用户赋予所有权限

grant all privileges on databasename.* to yourname@localhost identified by 'yourpassword';

(10)给账号开通外网所有权限

grant all privileges on databasename.* to 'yourname'@'%' identified by 'yourpassword';

上面的权限可以根据自己的需要进行适当的修改,举个例子:

grant  select,insert,update on databasename.* to 'yourname'@'192.168.01.01' identified by 'yourpassword';

代表只开通增改查权限给指定的账号,并也指定了ip的地址。
刷新,使上述操作生效:flush privilgges;
(11)查看本地的IP地址:
windows系统使用:ipconfig,而linux用户使用ifconfig

git的安装

关于git的安装,这里直接开启传送大门:Git安装教程(windows)
下面是一些基础的配置:
1、配置用户名(提交时会用到)
git config --global user.name "envy"(envy是我的用户名)
2、配置邮箱(提交时会用到)
git config --global user.email "envy@licheetools.top"(envy@licheetools.top是我的邮箱)
3、其他的一些配置
git config --global merge.tools "kdiff3"(注意一下,如果你没安装kdiff3就不需要这一行)
git config --global core.autocrlf false(设置这个的好处就是不用管不同系统中换行符错乱的问题)
4、编码问题:
git config --global gui.encoding utf-8(避免git gui中的中文乱码)
git config --global core.quotepath off(避免git status显示的中文文件名乱码)

在windows上面一般还需要配置一下大小写的问题:
git config --global core.ignorecase false

git ssh key pair的配置

1、你可以在linux上或者windows上的Git Bash命令行窗口中输入:
ssh-keygen -t rsa -C "envy@licheetools.top"
2、然后一路回车,不要输入任何密码,生成ssh key pair
3、ssh-add ~/.ssh/id_rsa
4、cat ~/.ssh/id_rsa.pub

5、复制公共钥匙到粘贴板,我这里是使用gitee(你当然可以使用github)
6、查看git的版本:git --version

至此,我们关于开发流程与环境搭建的介绍就到此为止了,感谢你的赏阅!

获取更多教程,请点击注册啃饼网:http://www.licheetools.top

SSM搭建二手市场交易平台(一):开发流程与环境搭建相关推荐

  1. 怎么创建数据表的实体类和业务类_SSM搭建二手市场交易平台(二):数据表设计...

    写在前面 从本篇开始,我们正式开始项目的搭建,首先介绍数据表的设计,具体包括:表结构,表关系,唯一索引,单索引及组合索引,时间戳这几个内容. 数据表 首先我们创建一个数据库store,然后开始创建数据 ...

  2. Java项目:ssm+mysql+jsp实现的校园二手市场交易平台源码

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本系统分为前后台,主要实现的功能有: 前台:(1)二手物品信息查看.搜索. (2)学生 ...

  3. (附源码)计算机毕业设计SSM黄淮学院二手物品交易平台

    (附源码)计算机毕业设计SSM黄淮学院二手物品交易平台 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(I ...

  4. JAVA团队开发手册 - 1.环境搭建

    JAVA团队开发手册 - 1.环境搭建 写在前面 所有公司最核心的根本就是赚钱 + 实现老板的梦想. 对于IT类技术型公司,最大的成本就是人,可以称之为知识型劳动密集型企业. 对比房地产,模糊的说,产 ...

  5. SAP Fiori开发工具——Eclipse环境搭建

    SAP Fiori开发工具--Eclipse环境搭建 这里我们选择Eclipse Web的Mars版本进行下载. 进入Eclipse官网:Eclipse Downloads | The Eclipse ...

  6. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  7. VS2008开发Windows Mobile6环境搭建及模拟器联网问题图解

    安装了VS2008后,新建一个智能设备的工程,但调试时只有三个WM5.0的模拟器可用,从网上查到要安装WM6.0的SDK,还要安装一些其它的组件才能开始WM(现在最新的叫法叫WP Windows Ph ...

  8. php基础开发(集成环境搭建)

    php基础开发(集成环境搭建) 1.下载软件 2.安装软件并配置环境 3.验证 1.下载软件 下载地址 链接:https://pan.baidu.com/s/14rAsOm1g2WUUVaQ7E7VO ...

  9. donet 微服务开发 学习-Docker环境搭建 win7 docker 环境配置

    donet 微服务开发 学习-Docker环境搭建 win7 docker 环境配置 目的介绍 下载安装 安装 Docker Quickstart Terminal 目的介绍 donet 微服务开发 ...

最新文章

  1. KVM虚拟机安装与使用
  2. JSOI2012-夏令营 Mar Maps
  3. linux iostat 查看磁盘io利用率
  4. 【Pytorch学习】用pytorch搭建第一个神经网络
  5. WPF 获取屏幕分辨率(获取最大宽高)等
  6. 大数据下的中国女人,看完惊呆了
  7. mysql通用日志不打印_解决logback不打印mybatis的SQL日志的问题
  8. SQL Server:CASE WHEN OREN ELSE END =不支持OR
  9. [转载] python3.x总复习
  10. MyBatis框架generatorSqlmapCustom自动生成及下载方法
  11. 解决无线网连不上的问题
  12. java Relative Path and absolute
  13. 老罗Android开发视频教程 (android解析xml文件 )3集集合
  14. vb改变字形的代码是什么_求VB中调整字体颜色代码
  15. 从几个实例来记忆Activity的生命周期
  16. cv2.resize()函数不同插值方法比较
  17. 机器人设计必备的软件有哪些
  18. 深圳市福田高中2021年高考成绩查询,2020年深圳高中梯队排行一览!2021年十大或有新格局?...
  19. 什么是双亲委派模型?双亲委派模型有何作用?
  20. 面向对象与面向过程思考

热门文章

  1. 监听ContentProvider
  2. 宜春学院计算机分数,宜春学院2019录取分数线预测
  3. 无稳态多谐振荡器分析
  4. 万能商标--“35类”
  5. 个人总结问卷调查,头脑风暴,焦点小组的区别
  6. ansible playbook play task执行顺序
  7. 如何将pdf文件进行压缩处理
  8. 宝宝起名测试,你的名字多少分?
  9. 兆骑科创高层次人才引进平台,赛事活动举办,线上路演
  10. VSCode搭建ESP32-C3开发环境