本demo为慕课网仿购物秒杀网站,该系统分为用户注册登录、秒杀商品管理模块。 前端页面基于bootstrap框架搭建,并使用bootstrap-validator插件进行表单验证。 此项目整体采用springMVC+RESTFUL风格,mybatis持久层框架,数据库密码采用AES加密保护(默认未开启)。采用dubbo+zookeeper实现服务分布式部署及调用。集成了支付宝支付功能(详见service模块),用户完成秒杀操作成功之后即可通过二维码扫码完成支付(本demo基于支付宝沙箱环境)。
本项目扩展了秒杀网站功能,通过gradle分模块管理项目,集成了jmock完成service层的测试,同时项目使用travis持续集成,提交更新后即可触发travis自动构建并完成项目测试覆盖率报告。
本项目目前主要有两个分支,dev_gradle
分支为使用gradle构建工具管理项目依赖,master
分支对应maven构建工具,master
部署方法见底部。本人已经转移到gradle分支上提交代码了,gradle分支集成了druid,swagger2以及pageHelper等功能,master
已经是很久以前的版本了,不过还是可以用的。代表编译成功,该项目仅作学习参考之用,觉得本项目对你有帮助的请多多支持一下~~~~。
技术 | 名称 | 官网 |
---|---|---|
Spring Framework | 容器 | http://projects.spring.io/spring-framework/ |
SpringMVC | MVC框架 | http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc |
MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
MyBatis Generator | 代码生成 | http://www.mybatis.org/generator/index.html |
PageHelper | MyBatis物理分页插件 | http://git.oschina.net/free/Mybatis_PageHelper |
Druid | 数据库监控连接池 | https://github.com/alibaba/druid |
ZooKeeper | 分布式协调服务 | http://zookeeper.apache.org/ |
Dubbo | 分布式服务框架 | http://dubbo.io/ |
Redis | 分布式缓存数据库 | https://redis.io/ |
ActiveMQ | 消息队列 | http://activemq.apache.org/ |
Logback | 日志组件 | https://logback.qos.ch/ |
Protobuf & json | 数据序列化 | https://github.com/google/protobuf |
Jenkins | 持续集成工具 | https://jenkins.io/index.html |
Maven | 项目构建管理 | http://maven.apache.org/ |
Gradle | 项目构建工具 | https://gradle.org/ |
SonarQube | 项目代码质量监控 | https://www.sonarqube.org/ |
Swagger2 | 项目API文档生成及测试工具 | http://swagger.io/ |
Jmock | mock类生成测试工具 | http://www.jmock.org/ |
Jacoco | 测试覆盖率报告插件 | http://www.eclemma.org/jacoco/ |
技术 | 名称 | 官网 |
---|---|---|
jQuery | 函式库 | http://jquery.com/ |
Bootstrap | 前端框架 | http://getbootstrap.com/ |
1.参照redis官网安装redis,默认端口启动activemq,zookeeper;
2.找到seckill.sql文件,在本地mysql数据库中建立seckill仓库并执行seckill.sql完成数据初始化操作;
3.jdbc.properties中修改数据库配置信息;
4.gradle安装配置好,在项目根目录输入命令
gradle build
5.如需生成测试覆盖率报告,请在项目根目录输入命令
gradle jacocoTestReport
6.在service模块中找到GoodsKillRpcServiceApplication类main方法启动远程服务;
7.编译好整个项目后使用tomcat发布server模块,上下文环境配置为goodsKill,部署成功后访问 http://localhost:8080/goodsKill/seckill/list 秒杀详情页;
-
本项目集成了支付宝二维码支付API接口,使用时需要配置支付宝沙箱环境,具体教程见支付包二维码支付接入方法;
-
项目中service部分引用了支付宝的第三方jar包,如需使用首先需要到支付宝开放平台下载,并引入到项目中,支付宝jar包安装到本地环境并添加本地依赖的方法:
mvn install:install-file -Dfile=jar包路径 -DgroupId=com.alibaba.alipay -DartifactId=alipay -Dversion=20161213 -Dpackaging=jar
mvn install:install-file -Dfile=jar包路径 -DgroupId=com.alibaba.alipay -DartifactId=alipay-trade -Dversion=20161215 -Dpackaging=jar