# SuperMarket **Repository Path**: jianshan527/SuperMarket ## Basic Information - **Project Name**: SuperMarket - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-23 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

网上商城

截图展示

首页
商品页面
注册页面
登录页面

声明

关键技术

基于SpringCloud框架开发的商城系统,代码严格遵循MVC分层思想,可部署到服务器上,设计精良,不断完善

包结构说明

功能说明

用户微服务(com.supermarket.user)

商品微服务(com.supermarket.product)

公共资源微服务(com.supermarket.common)

zuul网关(com.supermarket.gateway)

图片微服务(com.supermarket.image)

购物车微服务(com.supermarket.cart)

交流群

点击链接加入群聊【Supermarket项目交流群】:https://jq.qq.com/?_wv=1027&k=wlpUy5jo
交流群二维码

版本迭代

版本号 更新内容 上传时间
0.1
  • 初步完成项目方案确定
  • 完成主页及注册页面的静态资源编写(包括js,css)
  • 完成主页及注册页面的动态资源编写(包括jsp,servlet)
  • 通过jdbc链接MySQL数据库
  • 使用c3p0连接池
2020年8月3日
0.1.1
  • 可以选择使用哪个连接池,并且在web.xml中指定,现在可以使用DBCP连接池
  • 通过反射机制设置如果指定连接池调用失败,再调用哪个连接池
  • 使用Ajax技术完成前端用户名校验
  • 更改img标签的src属性,使浏览器异步发送GET请求,刷新验证码
2020年8月7日
0.1.2
  • 使用JDBC.properties进行全局JDBC配置
  • 去掉JDBC的反射调用
  • 使用cookie完成记住用户名功能
  • 新增登录功能:使用session完成会话级别的数据传递
  • 新增注销功能:通过ajax请求销毁session
  • 修改静态页面,使其实现对logo.png的单独依赖
2020年8月9日
0.2
  • 使用EL表达式替换jsp页面中的脚本表达式
  • 修改静态资源,主页增加右下角浮动项以及向上返回功能
  • 新增错误页面提示
  • 重构为JavaEE三层经典架构
2020年8月20日
0.2.1
  • 使用过滤器完成全局请求参数拦截处理,包括全局中文乱码处理、全局password请求参数加密
  • 通过过滤器实现全局连接池选定
  • 通过过滤器实现自动登录功能
  • 通过装饰者模式扩展request对象
2020年8月22日
0.2.2
  • 使用log4j框架进行日志记录
  • 修复重启服务器自动登录失效的bug
  • 加入网页标题图标
2020年8月24日
0.2.3
  • 将JDBC初始化功能交由监听器实现,并移除对应的过滤器
  • 使用过滤器实现JDBC反注册,避免内存泄漏
  • 使用注解替代web.xml完成servlet和监听器的注册
  • 重写前端校验,对于支持html5的浏览器使用其自带校验
2020年8月25日
0.3
  • 使用Spring、SpringMVC、MyBatis重构该web应用
  • 使用User类的装饰者模式完成密码的md5加密功能
  • 使用SpringMVC拦截器记录用户的访问请求
  • 使用切面记录错误日志,并统计响应时间
  • 升级log4j为log4j2
  • 使用html5及jQuery相结合的方式进行前端表单校验
2020年9月25日
0.3.1
  • 新增UserDao的SpringJDBC模板类实现
  • 注册用户功能开启事务,修复多个用户同时注册时可能造成用户名重复的bug
2020年9月29日
0.3.2
  • 新增备选的DBCP连接池配置
2020年10月1日
0.4
  • 使用Maven重构依赖
  • 使用SpringCloud重构项目
  • 重构数据库
  • 增加common微服务: 存放共享资源(如JavaBean, 工具类, ViewObject)
  • 增加商品微服务:新增、修改、查询功能
  • 增加用户微服务:用户名校验、注册
  • 增加图片微服务:图片上传
  • 增加nginx:负载均衡、动态静态资源分离
2020年11月10日
0.4.1
  • 新增redis配置,通过redis解决微服务之间数据共享问题
  • 完善用户微服务:实现登录、登出、登录状态获取,修复注册未校验密码一致性的Bug
  • 改进redis数据结构:将key-value改进为hash,从而实现单点登录
  • 使用AOP切面实现登录时长的自动延长
2020年11月12日
0.4.2
  • 调整前端css,增加注册、登录的错误提示
  • 新增注册成功页面
  • 其他前端页面样式的调整
2020年11月13日
0.4.3
  • 完善图片微服务:新增功能生成验证码、验证码缓存清理(避免前端连续请求验证码爆掉redis)
  • 完善用户微服务:登录、注册需要验证码,登录或注册成功后清除验证码缓存(节省redis内存)
  • 完善商品微服务:商品新增、查询、编辑触发被动缓存
2020年11月14日
0.4.4
  • 新增购物车微服务:实现商品查询、商品新增、商品修改、商品删除功能
  • 通过事务实现购买数量后端校验:防止购买量大于库存
  • 在前端实现购买数量校验校验:防止购买量大于库存
2020年11月15日
0.4.5
  • 完善图片微服务:解决redis中验证码缓存无法清理的BUG
  • 完善用户微服务:新增记住用户名、自动登录功能
2020年11月18日
0.4.6
  • 修复自动登录与单点登录功能冲突的bug。
  • 替换网页logo,避免不必要的责任纠纷
2020年11月19日

配置情况

遇到的bug锦集(作为记录,博君一笑)