# shoppingMall
使用主流框架组合SSM开发,并引入新技术,全面丰富的一个商城项目,美其名曰"京东商城"
## 项目起源
这个项目全名叫"淘淘商城",是大陆某培训机构压轴的一个项目.项目是几年前就已经出来了,每一届的项目都在改进.做这个项目的原因是项目里融汇了许多的知识点,做一遍下来可以开阔下自己的眼界.不得不说,在网上论坛里面大量地黑培训机构可能是太片面了点,把项目的整个流程做下来的话,最起码能了解很大一部分项目中涉及的技术点,当然也要看个人了,反观我们大陆大部分普通高校毕业学生出来在**项目经验**上确实没办法相比,当然仅仅只能说是项目编码经验上.反正我个人认为还是取决于自己吧!
整个项目的弊端也很容易看出来:
- 教学时间太短暂,带来的就是思考的时间不是很多
- 前端页面是直接提供的,你只能粘贴复制,完全不用考虑页面出现的各种问题
- 很多知识点一带而过,不讲技术原理,直接给出解决办法
利益都是相对的,优点也是很明显:
- 对于很多想找工作的人来说培训出来很快找到份工作
- 对于大多数普通高校毕业生培训接触到的知识点是在学校无法接触到的
- 项目经验不同于书本上的项目讲解,知识点比较新颖,碰到问题可以寻求帮助
- 跟一群能大部分志同道合的人一起学习氛围会更加好
## 项目环境
* **操作系统** : Ubuntu 17.04 (视频开发采用Windows7,部署项目使用Centos虚拟机)
* **IDE** :IntelliJ IDEA 2017.1.1 x64 (视频是用Eclipse,如果用IDEA的话有些坑你是肯定会碰见的)
* **JDK** : JDK1.7 (一开始使用1.8搭建,后来跟dubbo出现了冲突智能换回1.7)
* **Web容器** : Tomcat (视频里面使用Maven Tomcat插件)
* **数据库** :Mysql-5.7.17-winx64
* **依赖管理工具** : Maven 整个项目非常依赖Maven
* **版本控制工具** : Git (视频里面使用SVN,我这里使用的是Git)
## 项目概述
+ 项目最终Maven模块数量为26个,不区分父子模块
![note/images/mavenCount.png](note/images/mavenCount.png)
+ 项目最终部署Tomcat情况,前半部分为部署项目名,后面数字为端口号
![note/images/tomcatInfo.png](note/images/tomcatInfo.png)
+ IDEA中项目图
![note/images/ideaProject.png](note/images/ideaProject.png)
+ 系统构架图(项目给出的图)
![note/images/taotao.png](note/images/taotao.png)
## 开发流程
要么你就跟着视频一步一步走下去,每天都有教学笔记的,如果你是想过一遍技术点的话,完全可以根据每天的文档跟源代码自己练习下去,文档真的很详细,分为`PDF`跟`Doc`两种版本,简直就是一步步地教你开发
## 项目中碰到的一些问题的总结
### ① java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8083-exec-1" 内存溢出
```html
java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8083-exec-1"
```
看到这个错误大概就知道是跟内存有点关系了,直接去`Tomcat`里面添加运行参数吧,下面是我在`IDEA`里面的做法
- MAVEN tomcat插件
![mavenTomcat.png](note/images/mavenTomcat.png)
- IDEA配置的Tomcat容器
![mavenTomcat.png](note/images/ideaTomcat.png)
参数: ` -server -XX:PermSize=256M -XX:MaxPermSize=512m `
参数是根据你自己需求去改的,在你内存不是很紧张的情况下,尽量分配高一点的内存,减少`JVM`频繁`GC`次数,这里只是设置了几个基本的参数,参数的意义就是
+ `-server`是一个要为第一个参数的
+ `-XX:PermSize=256M` 持久区初始化的内存大小
+ `-XX:MaxPermSize=512m ` 持久去最大的内存大小
### ② SpringMvc文件上传失败问题
在进行文件上传的时候出现一个这样的问题
![SpringMvcFileUPloadError](note/images/SpringMvcFileUPloadError.png)
仔细一看,我猜测是Spring文件上传的配置没有配置,然后去``applicationContext-Mvc.xml``中看了下我的配置文件
````xml
<bean id="commonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置默认的编码-->
<property name="defaultEncoding" value="UTF-8"/>
<!--设置文件上传的最大值-->
<property name="maxUploadSize" value="5242880"/>
</bean>
````
我感觉也没有配错,然后查了下资料,发现``bean``的名字错了,改为
```xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置默认的编码-->
<property name="defaultEncoding" value="UTF-8"/>
<!--设置文件上传的最大值-->
<property name="maxUploadSize" value="5242880"/>
</bean>
```
原理`DispatcherServlet`
![DispatcherServlet](note/images/DispatcherServlet.png)
这里把bean的名字固定了的
### ③ 搭建redis集群的时候无法安装Ruby搭建集群脚本
执行`gem install redis-3.0.0.gem`是报错的,找不到这个东西
```
ERROR: Could not find a valid gem 'redis-3.0.0.gem' (>= 0) in any repository
```
然后`Google`找到了[官网的脚本](https://rubygems.org/gems/redis/versions/3.0.0?locale=zh-CN)
```
gem install redis -v 3.0.0
```
### ④ 操作redis集群出现异常
部分异常出错代码:
```
redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 11149 127.0.0.1:7001
at redis.clients.jedis.Protocol.processError(Protocol.java:108)
at redis.clients.jedis.Protocol.process(Protocol.java:142)
at redis.clients.jedis.Protocol.read(Protocol.java:196)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:187)
```
这个错误的原因就是跟`redis`集群有关系,`redis`把这个key分配到了`127.0.0.1:7001`节点上去了,然后并没有找到这个节点,所以报错了.查看`applicationContext-redis.xml`文件
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<!--单机版跟集群版只能选其中一个-->
<!-- 1.配置单机版的连接 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6379"/>
</bean>
<bean id="jedisClientPool" class="JedisClientPool"/>
<!-- 2.集群版的配置 -->
<!-- <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg>
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="6379"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="7000"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="7001"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="7002"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"/>
<constructor-arg name="port" value="70
%小红书%bin
- 粉丝: 2098
- 资源: 2148
最新资源
- 大学生科创项目在线管理系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 本科设计基于java实现智能二维码门禁管理系统源码+论文(高分毕设)
- 毕业生实习与就业管理系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 3b030本科生就业推荐系统_springboot+vue0.zip
- 3b029.OA办公管理系统_springboot+vue0.zip
- 基于java的火车票订票系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 基于JAVA的房地产销售管理系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 基于Java web的药店管理系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 毕业就业信息管理系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 基于JavaWeb的鲜牛奶订购系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 洞见研报PingPong金融(跨境电商金融服务商,杭州乒乓智能技术有限公司)创投信息
- 车辆管理系统-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 高校专业实习管理系统的设计和开发-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 反欺诈平台的建设-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 基于python+flask+postgreSQL技术设计并实现旅游数据可视化平台
- 火锅店管理系统-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈