基于springboot+vue3前后端分离的高校宿舍管理系统的设计与实现
目录
摘要
第一章 绪论
1.1 开发背景
1.2 开发意义
第二章 系统分析
2.1 系统的需求分析
2.2 系统开发设计思想
2.3系统开发步骤
2.4 系统的主要技术
2.4.1 B/S系统的三层体系结构
2.4.2springboot简介
2.4.3springboot优点
2.4.4vue
2.4.5vue优点
2.4.6redis简介
2.4.7redis特点
2.5 系统的运行环境和开发平台
2.5.1 硬件设备及操作系统
2.5.2 系统开发工具
2.5.3 开发工具简介
第三章 系统设计
3.1系统流程
3.2 系统功能模块的划分
3.2.1用户管理
3.2.3 宿舍管理
3.2.4 系统管理
3.3数据库设计
3.3.1数据库需求分析
3.3.2数据库的逻辑设计
第四章 系统实现
4.1主要界面实现
4.1.1用户登陆
4.1.2 首页
4.1.3 宿舍管理-楼宇信息管理
4.1.4宿舍管理-房间信息管理
4.1.5宿舍管理-学生信息管理
4.1.6学生-报修申请
4.1.7学生-申请调宿
4.1.8权限管理-修改密码管理
4.2主要功能程序的实现
4.2.1 数据库连接的建立
4.2.2信息添加
4.2.3宿舍录入相关页面
第五章 系统的测试
5.1 软件测试的目的和原则
第六章 总结
学习到了很多Java开发中需要的技术。
参考文献
致谢
《…1万字论文仅展示部分内容…》
第二章 系统分析
2.1 系统的需求分析
根据本校宿舍的工作流程与实际的需求和特色,本系统需满足以下几个方面的要求:
1.查询宿舍学生的基本信息以及各个宿舍的基本信息
2.学生可以提交报修信息
3.学生可以修改自己的密码
4.宿舍管理员可以查询宿舍区域、楼宇、院系、班级等信息
5.宿舍管理员可以查询保修信息的跟进情况
2.2 系统开发设计思想
系统采用前后端分离技术,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护;
系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
2.3系统开发步骤
宿舍管理系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。
上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低在线管理系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。
2.4 系统的主要技术
2.4.1 B/S系统的三层体系结构
在B/S的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。B/S结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
在B/S三层体系结构下,表示层(view)、功能层(controller)、数据层(model)被分割成三个相对独立的单元:
第一层–表示层:Web浏览器
在表示层中包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。
第二层–功能层:具有应用程序扩展功能的Web服务器
在功能层中包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,后台数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。
第三层–数据层:数据库服务器
在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新、删除功能,把运行结果提交给Web服务器。
从上面的分析中可以看出,B/S体系结构是把C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,于是由原来的C/S结构转变成B/S结构。
2.4.2springboot简介
SpringBoot是一种全新的框架,目的是为了简化Spring应用的初始搭建以及开发过程。该框架使用特定的方式(集成starter,约定优于配置)来进行配置,从而使开发人员不需要再定义样板化的配置。SpringBoot提供了一种新的编程范式,可以更加快速便捷地开发Spring项目,在开发过程当中可以专注于应用程序本身的功能开发,而无需在Spring配置上花太大的工夫。
SpringBoot基于Sring4进行设计,继承了原有Spring框架的优秀基因。SpringBoot并不是一个框架,而是一些类库的集合。maven或者gradle项目导入相应依赖即可使用SpringBoot,而无需自行管理这些类库的版本。
2.4.3springboot优点
1、为基于Spring的项目开发提供更快捷的入门体验:特别是对于刚开始使用Spring框架的开发人员,无需关心使用Spring框架都需要引入哪些jar包,无需关心Spring框架与其他框架整合时都需要哪些配置文件。SpringBoot会自动配置Spring。
2、无需手动管理依赖jar包的版本:SringBoot通过 spring boot starter管理其提供的所有依赖的版本,当升级SpringBoot时,这些依赖的版本也会随之升级,个人无需指定版本号,但是也可以自定义版本号覆盖SpringBoot的默认值。
3、自动配置,无需XML:SpringBoot尝试根据你添加的jar依赖自动配置你的应用。
4、嵌入式的Tomcat,无需部署war文件。传统的项目我们在启动或者部署的时候,需要将项目的war包放到服务器(如Tomcat、JBoss)的指定目录下,然后再启动服务器。而SpringBoot项目在启动时无需将war文件部署到服务器中。SpringBoot内置了Tomcat和Jetty容器。在服务器启动SpringBoot项目时可以通过jar指令直接启动, 在开发IDE中启动时只需运行Application类的main方法即可。
5、简化Maven配置:SpringBoot通过 spring boot starter管理jar包,无需手动配置jar包的版本。之前我们在进行jar包配置时,需要找到jar包的版本号,而在SpringBoot项目中,则无需去管理版本号。
2.4.4vue
vue是一套构建用户界面的框架。在我看来,渐进式代表的含义是:主张最少。每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。简单说就是对于vue中你不熟悉不太把握的模块或者功能,你可以不用它,或者你可以用你熟悉有把握的技术进行代替 。这样子看来是不是感觉很友好,相对于其他框架硬要求很少了,你可以逐渐性的使用框架。
为了实现前后端分离的开发理念,开发前端 SPA(single page web application) 项目,实现数据绑定,路由配置,项目编译打包等一系列工作的技术框架。
Vue有著名的全家桶系列,包含了vue-router(http://router.vuejs.org),vuex(http://vuex.vuejs.org), vue-resource(https://github.com/pagekit/vue-resource)。再加上构建工具vue-cli,sass样式,就是一个完整的vue项目的核心构成。
2.4.5vue优点
1、轻量级框架
只关注视图层,是一个构建数据的视图集合,大小只有几十kb
Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统
2、简单易学
国人开发,中文文档,不存在语言障碍,易于理解和学习
3、双向数据绑定
也就是所谓的响应式数据绑定。这里的响应式不是@media 媒体查询中的响应式布局,而是指vue.js会自动对页面中某些数据的变化做出同步的响应。
也就是说,vue.js会自动响应数据的变化情况,并且根据用户在代码中预先写好的绑定关系,对所有绑定在一起的数据和视图内容都进行修改。而这种绑定关系,就是以input 标签的v-model属性来声明的,因此你在别的地方可能也会看到有人粗略的称vue.js为声明式渲染的模版引擎。
这也就是vue.js最大的优点,通过MVVM思想实现数据的双向绑定,让开发者不用再操作dom对象,有更多的时间去思考业务逻辑。
2.4.6redis简介
Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。
Redis 比其他 key-value 缓存产品有以下三个特点:
1、Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。
2、Redis 不仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。
Redis 支持主从复制,即 master-slave 模式的数据备份。
第三章 系统设计
3.1系统流程
与本系统相关的角色包括:
系统管理员:管理系统用户、角色与权限、拥有系统全部权限,保证系统正常运行。拥有操作调宿申请,查看报修是否完成,查看用户基本信息等权利。
学生:查看宿舍信息,申请调宿,报修。
3.2 系统功能模块的划分
软件所实现的功能强弱是衡量一个软件的最根本的标准。经过对系统的需求分析和实际应用需求,确定了本子系统的功能模块如图3.2所示:
3.2.1用户管理
用户管理包括为用户分配账号,修改密码,用户安全退出功能。此模块只能由系统管理员统一配置,用户不能自行注册,但是用户可以修改自己的密码,并且用户密码是经过进行加密处理的。
3.2.3 宿舍管理
可以对宿舍里存在的信息进行登记,登记时需要填选学生的姓名,学生的人数,住宿的人数,报修统计,空宿舍统计等。管理员还可以对宿舍信息进行编辑。
3.2.4 系统管理
本系统角色共分为3种:系统管理员、宿舍管理员和学生。由于各个角色的使用功能不一样,所以要加入权限控制使不同的角色登陆系统后所拥有的权限不同。
3.3数据库设计
数据库的设计十分重要,下面将对本文所使用的数据表进行逐一的介绍。
- 用户表及ER图
表4.1用户表
字段名 数据类型 长 度 字段含义 是否主键 是否外键
userid INTEGER 11 用户ID 是
roleid INTEGER 11 角色id 是
username VARCHAR 20 用户账户名
userpwd VARCHAR 20 用户密码
usertruename VARCHAR 30 真实姓名
用户表ER图,如图4-4所示:
图4-4 用户表ER图
用户id:每一个登陆的用户都有一个特有的编号;
角色id:学生、超级管理员、试题管理员,三个角色分别对应一个编号;
账号:登录时需要用到的;
密码:密码对应相应的账号;
姓名:用户的真实姓名;
状态:1为正常,0为禁用。
第四章 系统实现
4.1主要界面实现
本系统的UI设计主要采用element,已经提供好的样式用起来特别方便。
4.1.1用户登陆
输入正确的用户名、密码和所选角色后进行登陆。
4.1.2 首页
登陆成功后进入首页面
4.1.3 宿舍管理-楼宇信息管理
4.1.4宿舍管理-房间信息管理
4.1.5宿舍管理-学生信息管理
进入角色管理模块,添加角色,宿舍管理员、系统管理员和学生。然后为其分配相应的页面和按钮访问权限。
4.1.6学生-申请调宿
4.1.7权限管理-修改密码管理