基于SpringBoot+Mybatis开发的分布式校园租赁系统
> 其他项目文档在[project-docs](/project-docs)目录下
## 一、项目结构
```
├── project-database -- 数据库脚本
├── project-docs -- 项目文档
│ ├── application-private.yml.template -- 配置文件模板
│ ├── businessLogicAnalysis.md -- 业务逻辑分析文档
│ ├── businessLogicDesign.md -- 业务逻辑设计文档
│ ├── convention.md -- 项目约定文档
│ ├── development.md -- 开发文档
├── project-tools
│ └── mysql-es-sync -- mysql和elasticsearch数据同步工具
├── rentx-admin* -- 后台管理系统代码
├── rentx-common -- 后台管理系统和用户租赁系统公共代码
├── rentx-generator -- 代码生成器
├── rentx-web* -- 用户租赁系统代码
```
## 二、技术选型
### 后端技术
Spring Framework、SpringMVC、SpringBoot、MyBatis、Dubbo、Redis、Elasticsearch、Spring Security、Thymeleaf、Mysql、Websocket
### 前端技术
Bootstrap、jQuery
## 三、项目运行
1. 安装Jdk1.8、redis、Elasticsearch、Logstash,并使用默认端口
1. 配置系统环境变量,数据库密码(MYSQL_PASSWD)
1. 将"project-docs"目录下"application-private.yml.template"文件复制到"rentx-web/src/main/resources"目录下,重命名"application-private.yml",并修改其配置
1. 运行"project-database"目录下rentx-web.sql和rentx-admin.sql文件
1. 生产环境配置dubbo注册中心
1. 启动项目
- 开发:注释掉根pom文件中的"<goal>compile</goal>"一行,然后可以以任何方式启动
- 非开发:只能用maven方式启动,cd rentx-web & mvn spring-boot:run; cd rentx-admin & mvn spring-boot:run
1. 用户租赁系统登录页面: http://localhost:9999/login/ (用户名/密码见[development.md](/project-docs/development.md)文件), 后台管理系统首页: http://localhost:9988/
## 四、项目概览
### 背景
大学生刚进入学校,不免会尝试一些新的东西,但并不是每样都是适合自己,租一件物品尝试一下可能好多人都想过。因此,一个可靠的校园租赁系统可以解决很多同学这个问题。
### 概述
项目基于Java Web,前端用网页展现。该系统包括两个子系统:一是后台管理系统,供管理员使用。二是用户租赁系统,供出租人和承租人使用。非注册用户可以浏览可租赁物品信息。
### 特点
1. 分布式:为了解藕和提高扩展性,将系统拆分,普通用户租赁系统和后台管理系统分开部署,用户租赁系统封装出基础服务接口,使用Dubbo供后台管理系统远程方法调用,提高代码复用性。为保证可用性,普通用户租赁系统和后台管理系统都分别使用Docker集群部署(项目中暂无此内容)。
2. 高安全性:考虑到系统可能遭到黑客攻击,从而导致系统宕机和用户隐私泄漏,系统对常见Web攻击做出防范。使用AOP技术进行XSS防御和敏感词过滤;使用验证码防暴力破解;使用预编译SQL防SQL注入;数据库存储经过bcrypt算法处理过的用户密码的哈希值防密码泄漏;使用SpringSecurity做角色权限控制。
## 五、系统分析
### 功能需求
#### 公共模块
基于AOP的安全防御模块:使用AOP进行XSS防御和敏感词过滤。考虑用户上传租赁物品信息等场景,用户可能上传攻击脚本和敏感词,系统对敏感词和XSS攻击做出防范。使用面向切面编程技术,将安全防御的代码从业务代码中分离,对于需要防御的地方只需要加上注解,使用切面拦截做安全处理,从而减少代码侵入性。
#### 用户租赁系统
1. 登录注册模块:
- 用户注册需要填写基本信息,使用邮箱注册。数据库存储经过bcrypt算法处理过的用户密码的哈希值,从而减少系统被拖库后用户密码暴露风险。
- 用户登录使用验证码防止用户暴力破解。
2. 租用模块 - 承租人:
- 开始租用:用户可查看可租物品信息。用户对未被租用物品可执行租赁操作。
- 我的租用:用户可查看自己已租赁的物品清单,可执行取消申请租赁操作。
3. 出租模块 - 出租人:
- 开始出租:出租人可以在相应的类别添加、修改自己要出租的物品信息。
- 我的出租:出租人可以查看自己的出租物品,还可以查看单个物品租用历史以及当前租用情况。
4. 近实时的全文搜索模块:为提高大量物品信息搜索速度,解决数据库查询瓶颈,使用搜索引擎Elasticsearch强化搜索功能,对物品信息提供全文搜索功能,并可按类别筛选。
5. 在线支付模块:对于租金、押金支持支付宝在线支付和查看支付状态,通过调用支付宝开放接口实现。
6. 服务接口封装:封装用户租赁系统中通用接口,供后台管理系统RPC调用。
#### 后台管理系统
1. 登录注册模块:后台管理员帐号密码由运维人员使用脚本手动存入数据库,登录功能复用用户租赁系统的部分代码。
2. 角色权限管理:角色分为三类,分别管理员、出租人、承租人。管理员只能使用“后台管理系统”,出租人、承租人只能使用“用户租赁系统”。
系统使用Spring Security权限框架,把每个单独的权限和功能(URL+HTTP方法)挂钩。用户访问系统的某一个URL的时候,系统首先检查用目标URL是否和功能权限绑定,判断绑定了在校验用户的角色是否包含指定权限。
3. 用户管理模块:管理员可以查看、修改用户信息。(暂未实现)
4. 类别管理模块:管理员可以查看已有类别、修改类别、添加新类别和删除类别等。
5. 物品管理模块:管理员可以在相应的类别下添加或修改物品信息,还可以查看物品信息和执行删除物品的操作。(暂未实现)
6. 租用管理模块:管理员可以查看用户提交的租用申请信息,可批准和否定用户的租赁申请。当用户归还物品后,管理员可以执行归还操作。
7. 统计报表模块:管理员可查看按类别时间查看物品租用情况的统计报表。
8. 实时通信模块:基于Websocket实现实时通讯,用户可以和客服沟通租赁、支付等操作中出现的问题,出租人和承租人之间可在线沟通。(简单实现)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SpringBoot+Mybatis开发的分布式校园租赁系统 ,项目经过严格测试,确保可以运行!项目基于Java Web,前端用网页展现。该系统包括两个子系统:一是后台管理系统,供管理员使用。二是用户租赁系统,供出租人和承租人使用。非注册用户可以浏览可租赁物品信息。 ### 后端技术 Spring Framework、SpringMVC、SpringBoot、MyBatis、Dubbo、Redis、Elasticsearch、Spring Security、Thymeleaf、Mysql、Websocket ### 前端技术 Bootstrap、jQuery 1. 分布式:为了解藕和提高扩展性,将系统拆分,普通用户租赁系统和后台管理系统分开部署,用户租赁系统封装出基础服务接口,使用Dubbo供后台管理系统远程方法调用,提高代码复用性。为保证可用性,普通用户租赁系统和后台管理系统都分别使用Docker集群部署(项目中暂无此内容)。 2. 高安全性:考虑到系统可能遭到黑客攻击,从而导致系统宕机和用户隐私泄漏,系统对常见Web攻击做出防范。使用AOP技术进行XSS防御
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+Mybatis开发的分布式校园租赁系统源码,适合新手学习,本科毕业生设计,java课程设计等 (370个子文件)
priv.thinkam.rentx.common.component.alarm.AlarmApi 40B
jdbc.conf 1012B
mdui.min.css 284KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
buttons.css 78KB
bootstrap-datepicker.min.css 15KB
zTreeStyle.css 6KB
zTreeStyle.css 6KB
style.css 2KB
layout.css 2KB
register.css 2KB
login.css 1KB
reset.css 928B
assets.css 788B
index.css 573B
index.css 573B
login.css 164B
main.css 39B
main.css 39B
start_rent_in.css 0B
my_rent_in.css 0B
start_rent_out.css 0B
my_rent_out.css 0B
category_index.css 0B
item_index.css 0B
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
entity.java.ftl 4KB
mapper.xml.ftl 1KB
controller.java.ftl 971B
serviceImpl.java.ftl 682B
mapper.java.ftl 349B
zTreeStandard.gif 5KB
zTreeStandard.gif 5KB
loading.gif 381B
loading.gif 381B
line_conn.gif 45B
line_conn.gif 45B
.gitignore 137B
category_index.html 10KB
item_daily_stats.html 6KB
chat.html 6KB
register.html 6KB
start_rent_in.html 5KB
index.html 5KB
start_rent_out.html 5KB
item_index.html 5KB
my_rent_in.html 4KB
login.html 4KB
reset.html 4KB
my_rent_out.html 4KB
search.html 4KB
index.html 4KB
login.html 2KB
email_captcha.html 288B
favicon.ico 19KB
favicon.ico 19KB
MaterialIcons-Regular.ijmap 28KB
CategoryService.java 7KB
RegisterController.java 7KB
SensitiveFilter.java 7KB
WebMvcConfig.java 6KB
ItemService.java 6KB
StuffService.java 5KB
WebSecurityConfig.java 5KB
StuffController.java 4KB
StringPointer.java 4KB
ItemController.java 4KB
AuthController.java 4KB
ItemController.java 3KB
CaptchaValidationFilter.java 3KB
UserService.java 3KB
RegisterParam.java 3KB
CategoryParam.java 3KB
CategoryServiceImpl.java 2KB
ItemServiceImpl.java 2KB
CodeGeneratorTool.java 2KB
Response.java 2KB
MenuService.java 2KB
RedisTemplateTest.java 2KB
BeanUtilTest.java 2KB
WebSocketChatServer.java 2KB
CategoryController.java 2KB
KaptchaConfig.java 2KB
MailService.java 2KB
CustomAuthenticationSuccessHandler.java 2KB
StuffDocument.java 2KB
SensitiveWordAspect.java 2KB
RoleResourceService.java 2KB
XssAspect.java 2KB
WebBaseController.java 1KB
RoleEnum.java 1KB
StringUtil.java 1KB
CategoryServiceTest.java 1KB
CategoryServiceApi.java 1KB
StuffRepository.java 1KB
StringUtilBenchmark.java 1KB
CategoryParentIdValidator.java 1KB
ItemStatusEnum.java 1KB
共 370 条
- 1
- 2
- 3
- 4
资源评论
白话机器学习
- 粉丝: 8213
- 资源: 7687
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于STM32F103C8T6单片机蓄电池在线监测系统主板硬件(原理图+PCB)工程文件.zip
- mysql大纲资料.txt
- c++大纲资料.txt
- 效率工具bat脚本实现日志提取
- MyBatis 中动态 SQL 的示例
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功