zhangbincheng1997 / mall

Licence: other
SpringBoot + Layui 电子商城系统

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to mall

Eshop Soa
EShop基于Dubbo实现SOA服务化拆分,并基于RocketMQ解决了分布式事务(新版SpringBootSOASkeleton)
Stars: ✭ 65 (+71.05%)
Mutual labels:  spring-security, mybatis, mybatis-generator
Spring Boot In Action
Spring Boot 系列实战合集
Stars: ✭ 4,153 (+10828.95%)
Mutual labels:  spring-security, mybatis
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (+750%)
Mutual labels:  spring-security, mybatis
Webpersonal
WebPersonal 是基于 Spring Boot + Vue Admin Template 搭建的个人网站,采用Docker容器化部署。包括个人简历、权限管理、相册等功能,持续更新,您的 Star⭐,就是我最大的动力(●'◡'●)
Stars: ✭ 28 (-26.32%)
Mutual labels:  spring-security, mybatis
SSM Maneger DEMO
⚡️基于 SSM的后台管理系统DEMO 使用SpringMVC+Spring+Mybatis以及maven的后台管理系统. 程序的结构分为表现层(Controller)、业务层(Service)、数据层(Dao),包括权限授权、分页查询、日志记录,订单及产品查询,授权管理等功能
Stars: ✭ 41 (+7.89%)
Mutual labels:  spring-security, mybatis
spring-security-mybatis-demo
A simple demo for Spring Security with Mybatis .
Stars: ✭ 48 (+26.32%)
Mutual labels:  spring-security, mybatis
Bugcatcher
方便产品、开发、测试三方协同管理、测试、监控项目进度和质量,以持续交付。
Stars: ✭ 472 (+1142.11%)
Mutual labels:  spring-security, mybatis
My Blog Layui
layui 版本的 My-Blog : A simple & beautiful blogging system implemented with spring-boot & layui & thymeleaf & mybatis My Blog 是由 SpringBoot + Layui + Mybatis + Thymeleaf 等技术实现的 Java 博客系统,页面美观、功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验
Stars: ✭ 204 (+436.84%)
Mutual labels:  mybatis, layui
Mybatis Spring Boot Jpetstore
A sample web application built on MyBatis 3, Spring Boot and Thymeleaf 3.
Stars: ✭ 75 (+97.37%)
Mutual labels:  spring-security, mybatis
M-Volunteer-SpringBoot
美志愿APP服务端,客户端在https://github.com/learner1999/M-Volunteer
Stars: ✭ 52 (+36.84%)
Mutual labels:  spring-security, mybatis
Mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 54,797 (+144102.63%)
Mutual labels:  spring-security, mybatis
zealsay backend
Spring Boot 快速开发脚手架,以博客论坛为示例展示,后台主要使用Spring Boot,Spring Security,Mybatis-plus,redis token,前端使用Nuxt,Vue,Vuex,Vue-Router,Vuetify。
Stars: ✭ 58 (+52.63%)
Mutual labels:  spring-security, mybatis
JavaFamily
【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。
Stars: ✭ 517 (+1260.53%)
Mutual labels:  spring-security, mybatis
SpringBoot
SpringBoot SpringCloud开发整合
Stars: ✭ 31 (-18.42%)
Mutual labels:  spring-security, mybatis
Spring Cloud Shop
spring cloud 版分布式电商项目,全力打造顶级多模块,高可用,高扩展电商项目
Stars: ✭ 248 (+552.63%)
Mutual labels:  mybatis, mybatis-generator
Api Boot
“ ApiBoot”是为接口服务而生的,基于“ SpringBoot”完成扩展和自动配置,内部封装了一系列的开箱即用Starters。
Stars: ✭ 460 (+1110.53%)
Mutual labels:  spring-security, mybatis
Crown
Based on SpringBoot2, Crown builds a rapidly developed web application scaffolding.
Stars: ✭ 161 (+323.68%)
Mutual labels:  mybatis, layui
Roncoo Mybatis Generator
龙果开源-Mybatis代码自动生成工具
Stars: ✭ 165 (+334.21%)
Mutual labels:  mybatis, mybatis-generator
Hospital
医院预约挂号微信小程序(Spring Boot、Vue、Uni-app)
Stars: ✭ 182 (+378.95%)
Mutual labels:  spring-security, mybatis-generator
Milkomeda
Spring extend componets which build from experience of bussiness, let developers to develop with Spring Boot as fast as possible.(基于Spring生态打造的一系列来自业务上的快速开发模块集合。)
Stars: ✭ 117 (+207.89%)
Mutual labels:  spring-security, mybatis

mall

前端技术

web-layui

  1. Layui
  2. 模板
  3. 😄 ! 注意config.js文件,全局配置

alt text

alt text

后端技术

技术 说明
Spring Framework IoC(控制反转)、AOP(面向切面)
Spring Boot MVC框架
Spring Security 安全框架
JWT 单点登录
Druid 数据库连接池
MyBatis 数据库框架
MyBatis Plus 数据库增强框架
MySQL 关系型数据库
Redis 缓存型数据库
RocketMQ 消息队列
QiNiu 对象存储
Swagger 文档接口
LogStash 日志收集
Hutool Java工具类库
Lombok 简化对象封装工具(需要安装IDEA插件)

结构

mall:
----mall-mbg: 数据库生成
----mall-common: 基础模块
----mall-security: 用户认证
----mall-app: 商城后端开发
----mall-admin: 管理后端开发

启动

支付宝沙箱

alt text

# 内网穿透
$ ssh -NR 8888:127.0.0.1:8080 [email protected]

# 保持连接
$ vim /etc/ssh/sshd_config
+ ClientAliveInterval 60
+ ClientAliveCountMax 10

MySQL

  1. 安装(略,或直接安装LNMP

  2. 配置外网访问

$ vim /etc/my.cnf
+ [mysqld]
+ port = 3306
+ bind-address = 0.0.0.0

$ mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; 
mysql> FLUSH PRIVILEGES;
  1. 启动/关闭
$ service mysql start
$ service mysql stop

Redis

  1. 安装
$ yum install redis
  1. 配置外网访问
$ vim /etc/redis.conf
+ bind 127.0.0.1         ----> # bind 127.0.0.1
+ protected-mode yes     ----> protected-mode no
+ # requirepass foobared ----> requirepass 123456
+ daemonize no           ----> daemonize yes
  1. 启动/关闭
$ redis-server 或者 ($ redis-server /etc/redis.conf)
$ redis-cli shutdown

RocketMQ

  1. 安装
$ wget https://archive.apache.org/dist/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip
$ unzip rocketmq-all-4.7.0-bin-release.zip
$ mv rocketmq-all-4.7.0-bin-release rocketmq
$ mv rocketmq /usr/local

$ vim /etc/profile
+ export PATH=$PATH:/usr/local/rocketmq/bin
+ export NAMESRV_ADDR=localhost:9876

$ source /etc/profile
  1. 启动/关闭
$ mqnamesrv &
$ mqbroker -n localhost:9876 &

$ mqshutdown broker
$ mqshutdown namesrv

# 外网访问
$ vim /usr/local/rocketmq/conf/broker.conf
+ namesrvAddr=www.littleredhat1997.com:9876
+ brokerIP1=www.littleredhat1997.com

# 后台运行
$ nohup mqnamesrv &
$ nohup mqbroker -c /usr/local/rocketmq/conf/broker.conf &
  1. 报错解决
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)

$ cd /usr/local/rocketmq/bin/

$ vim runserver.sh
- JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
+ JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

$ vim runbroker.sh
- JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
+ JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"

Tomcat

  1. 安装
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
$ tar -zxvf apache-tomcat-9.0.30.tar.gz
$ mv apache-tomcat-9.0.30 tomcat
$ mv tomcat /usr/local
  1. 启动/关闭
$ cd /usr/local/tomcat
$ ./bin/start.sh
$ ./bin/stop.sh

端口开放

# 修改端口
$ vim /etc/sysconfig/iptables
# 重启端口
$ service iptables restart
# 查看端口
$ iptables -L -n

Spring Security

Filter -> Interceptor -> Aspect -> Controller
OncePerRequestFilter 重复执行的filter只需要一次执行

1. AbstractUserDetailsAuthenticationProvider.java
     private class DefaultPostAuthenticationChecks implements UserDetailsChecker
         -> isAccountNonLocked() -> isEnabled() -> isAccountNonExpired()
2. DaoAuthenticationProvider.java
     protected void additionalAuthenticationChecks
         -> check username and password
3. AbstractUserDetailsAuthenticationProvider.java
     private class DefaultPreAuthenticationChecks implements UserDetailsChecker
         -> isCredentialsNonExpired()

USERNAME_NOT_FOUND(1004, "认证失败:用户名不存在"),
BAD_CREDENTIALS(1005, "认证失败:密码错误"),
ACCOUNT_DISABLED(1006, "认证失败:用户不可用"),
ACCOUNT_LOCKED(1007, "认证失败:用户锁定"),
ACCOUNT_EXPIRED(1008, "认证失败:用户过期"),
CREDENTIALS_EXPIRED(1009, "认证失败:证书过期"),

压力测试

JMeter

项目 QPS Time
MySQL 200 ≈2s
Redis 5000 <10ms
其他说明 CPU8核16线程 内存16G*2

参考链接

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].