• 基于SpringBoot的自行车租赁系统的设计与实现


    摘 要

    随着国家经济飞速发展和居民生活水平的提高,给城镇交通问题带来了巨大隐患。传统共享自行车系统的产生成为了解决交通问题的手段之一,城镇居民很难简单、方便的使用传统的共享自行车系统,所以如何让城镇居民简单快捷的使用自行车系统并方便用户出行,是当前自行车租赁系统应重点解决的问题。

    为了提高用户的使用精准度和租赁效果,并结合租赁系统涉及数据多、信息广等特点,设计并实现了基于SpringBoot的自行车租赁系统。系统将系统管理员管理、租赁管理员管理和用户进行租赁操作三部分作为系统的核心功能进行开发。对于系统管理员管理,通过对每个租赁点信息查看的功能,可以为每个租赁点分配可以使用的自行车和租赁管理员。系统管理员可以查看当前系统中所有需要维修的自行车信息;对于租赁管理员管理,通过对当前租赁点信息的查看,可以对租赁点内存有的可以使用的自行车进行租赁操作和回收用户租赁中的自行车并查看自行车状态;对于用户进行租赁操作,通过租赁管理员展示的二维码信息,填写个人信息进行租赁操作和在任意租赁点归还自行车,提高自行车租赁的整体效率和使用效果。

    论文针对用户体验、数据规模大、管理实效等相关需求,设计了自行车租赁系统,给出了租赁系统的总体设计,对系统的结构及关键性模块的实现过程进行了详细的描述。采用SpringBoot后端框架、Angular前端框架和PostgreSQL数据库实现了一个完成的自行车租赁系统设计,为用户和管理人员提供了更加方便、快速和简单的租赁过程。

    关键词:自行车租赁;租赁系统;SpringBoot框架;Angular框架

    Abstract

    With the rapid development of the national economy and the improvement of residents' living standards, it has brought huge hidden dangers to urban traffic problems. The emergence of the traditional shared bicycle system has become one of the means to solve the traffic problem. It is difficult for urban residents to use the traditional shared bicycle system simply and conveniently. Problems to be solved by the leasing system.

    In order to improve the user's use accuracy and rental effect, combined with the characteristics of the rental system involving many data and wide information, the bicycle rental system based on SpringBoot was designed and implemented. The system develops the system administrator management, lease administrator management and user leasing operations as the core functions of the system. For the system administrator management, through the function of viewing the information of each rental point, the bicycle and rental administrators that can be used can be allocated to each rental point. The system administrator can view all the bicycles in the current system that need to be repaired; for the management of the rental administrator, by viewing the information of the current rental point, you can rent the bicycles available in the rental point and recycle the user's rental. Bicycle and check the bicycle status; for the user to perform the rental operation, fill in the personal information for the rental operation and return the bicycle at any rental point through the QR code information displayed by the rental administrator, improving the overall efficiency and use effect of bicycle rental.

    The thesis designs a bicycle rental system according to user experience, large data scale, management effectiveness and other related requirements, gives the overall design of the rental system, and describes the structure of the system and the implementation process of key modules in detail. Adopt SpringBoot back-end framework, Angular front-end framework and PostgreSQL database to implement a completed bicycle rental system design, providing users and managers with a more convenient, fast and simple rental process.

    Keywords: Bicycle rental; Rental system; SpringBoot framework; Angular framework

    目 录

    摘 要    I

    Abstract II

    第 1 章    绪 论    1

    1.1 研究背景    1

    1.2 国内外发展状况    1

    1.2.1 国外发展状况    2

    1.2.2 国内发展状况    2

    第 2 章    相关技术分析    4

    2.1 SpringBoot框架    4

    2.2 AngularJS  5

    2.3 PostgreSQL数据库    6

    第 3 章    需求分析与总体设计    7

    3.1 可行性分析    7

    3.1.1 技术可行性分析    7

    3.1.2 经济可行性    7

    3.2 系统分析    7

    3.3 系统结构    9

    3.4 系统功能需求说明    10

    3.5 数据库设计    11

    第 4 章    系统功能实现    15

    4.1 系统管理员模块    15

    4.1.1 租赁点管理    15

    4.1.2 租赁管理员管理    17

    4.1.3 车辆信息管理    20

    4.1.4 总体查询    22

    4.2 租赁管理员模块    24

    4.2.1 借出记录    24

    4.2.2 归还记录    27

    4.2.3 车辆管理    28

    4.3 关键技术难点和解决方法    30

    第 5 章    系统测试    32

    5.1 功能测试    32

    5.2 测试总结    35

    第 6 章    结 论    36

    参考文献    37

    致 谢    38

    由于城市交通系统对环境、能源消耗和人民生活质量的直接影响,人们对可持续发展背景下城市交通系统的关注日益增加。中国等发展中国家的城市尤其如此,因为这些城市目前正面临机动化和城市流动性的快速增长[1]。涉及到交通环境问题的因素也在不断增多,而这些因素中对交通环境的破坏也越来越大。为了治理交通环境问题,各个国家每年对交通环境问题的投入比例都在逐年的快速的升高。而自行车作为可以完美解决当前交通环境问题的方法之一,也被越来越多的企业所发现并逐渐重视起来。

    自行车租赁是自行车租赁系统的重要核心部位,一个快速的便捷的租赁系统可以提高自行车的租赁效率和用户的体验效果,大大的减少租赁过程所需的时间。公共自行车租赁系统为当地居民和游客提供了便利的服务,提高了自行车的工作效率和经济效益,减轻了对城市交通环境的压力。通过在城市范围内或一定区域内设置若干站点和公共自行车,并向人们提供免费或象征性的自行车租赁服务[2]。自行车租赁系统的研发和使用给租赁系统的发展提供了极大的推动作用。

    自行车租赁系统的使用过程将涉及到大量的基础设备信息,例如自行车信息、租赁点信息、管理人员信息等以及大量的使用用户信息,若这些数据信息依靠原始的信息管理,效率低,方式繁琐,直接会导致信息的不对等和信息丢失等问题,会给系统的正常运行带来严重的影响。要想更好管理设备信息和用户信息,不仅要从设备的类型和状态进行管理,还要从用户信息和自行车信息之间的联系进行考虑。因此,开发设计一款自行车设备管理、租赁点管理、使用用户信息管理等一体化信息管理的自行车租赁系统是具有一定应用意义的。

      1. 国内外发展状况

    近几年来,汽车等机动化交通工具的剧增对道路的需求、土地资源的占用等环境需求带来了巨大的挑战。人们开始意识到汽车等机动化交通工具带来的一系列问题,如环境破坏、交通堵塞、车辆噪音等。自行车作为一种低碳绿色环保的交通出行方式,在许多城市中受到了越来越多的追捧。

        1. 国外发展状况

    为了减少温室气体的排放和资源的过度消耗,提供一种健康、绿色、环保、有效利用现有资源的出行方式,北欧国家率先提出了“自行车自由行”的运动。1965,荷兰阿姆斯特丹的一个无政府主义组织掀起了“白色自行车计划”,他们将没有上锁的自行车放在城市的公共区域,供人们长期免费使用,但几天内所有的公共自行车丢失或被破坏殆尽[7]。在1991年,丹麦哥本哈根诞生了第二代自行车,二代自行车的特点是在指定的租赁地点进行租车骑行,民众以投币的方式进行借还车操作。在1999年,第三代公共自行车系统横空出世。三代公共自行车搭配着当前年代的现代化技术、无线通讯和互联网通信,配有拥有电子锁的停车桩,搭载着可以进行跟踪计费的芯片和可以在网络上查询自行车踪迹和信息的系统。

    2005年,法国推出了一个名为Vélo’V的项目,Vélo’V项目的实际操作方式是为每辆自行车都配备GPRS定位功能,其目的是为了防止自行车丢失或者被不法分子偷盗,而且要求每名使用者都必须进行实名认证登记才可以使用项目中的每一辆自行车。

    2013年5月,作为世界中心的纽约市政府开始运营以Citi Bike为名的公共自行车项目。大多城市因为站点分布不合理而使得PBS日周转量在2次以下,而Citi Bike的PBS之所以能成功主要在于站点分布高度密集[8]。

    如今,一种名为“社会化自行车”的自行车租赁系统悄然诞生,准备在纽约进行试运营。这个新兴的自行车租赁系统的特点在于在用户想将租赁中的自行车进行归还时无需寻找特点的租赁点进行归还而是直接将自行车随意的丢在任意一个地方就可以。如果他人想进行租赁自行车操作,只需要打开自行车租赁系统的移动端手机App,通过自行车本身的GPS定位系统查找距离用户最近的无人使用的自行车,通过获取权限、拨打电话等方式获取验证码进行租赁自行车。

        1. 国内发展状况

    自2005年以来中国公共自行车租赁系统迅猛发展,无论在技术上、使用规模上、自行车使用周转率上、还是人性化部件设计上都远远超过了法国、丹麦等欧洲公共自行车发起国[4]。

    2016年,共享自行车迎来了发展的元年,在快速发展过程中, 互联网租赁自行车也催生了乱停乱放、押金及预付金难退等问题, 给城市管理带来了压力与挑战[5]。随着移动互联网的快速发展,以ofo为首的互联网共享自行车孕育而生,带动了共享文化的狂潮,更是使用了无桩式自行车代替了有桩式自行车,减少了对于自行车带来的空间减少、环境破坏等问题。

    由于互联网共享单车将涉及到海量的物联网数据、用户信息数据、车辆信息数据等相关数据的管理以及要随时查看用户所提意见并及时对共享单车进行再次开发和优化性能等方面的整改。共享单车系统会先搭建在云平台开发服务技术(PaaS)上进行运营,基于Docker容器的新一代PaaS云平台实现了快速资源池构建、灵活弹性资源调配、统一高效服务集成等功能[6]。PaaS云平台一方面可以将海量数据进行统一管理和承载另一方面可以将可用资源和人力进行及时分配的灵活操作。

    系统使用SpringBoot作为后台开发框架,它是基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且通过简化配置来进一步简化项目的整体搭建和开发过程。使用Ng-ZORRO作为前端页面渲染框架,使用Node.js作为前端和后端数据交互的运行环境。使用PostgreSQL作为数据库,它是一种对象-关系型数据库管理系统。使用AngularJS脚本进行系统的代码编写。

      1. SpringBoot框架

    SpringBoot是用以简化Spring开发过程的一种轻量级框架,在使用SpringBoot框架作为开发环境时只需要选择适合用于开发的框架或组件,SpringBoot框架就能够快速生成一个企业级的应用项目来供给开发人员进行实际的开发。SpringBoot将流行的框架的依赖库进行了分组整合,将其合并到一个依赖库中,这样就可以一次性的添加到项目的Maven或Gradle构建中[9]。

    SpringBoot提高了高层模块与底层模块之间的内聚,降低高底层模块之间的耦合。充分考虑系统的可扩展性和可重用性以及开发成本,采用分层思想整体设计系统[10]

    SpringBoot框架无需单独安装容器,其内嵌了Tomcat和Jetty容器,jar包可以直接发布一个Web应用,无需部署War文件。方便对外输出各种形式的服务,如:RESTAPI、WebSocket、Web等。

    相对于传统的JavaEE项目开发模式,SpringBoot采用了更好地配置文件格式,使用最初在Maven中看到的“约定大于配置”的思想,也叫惯例优先原则。用户可以按照需要个性的配置采用properties文件或yaml文件的格式写在统一的文件中。也就是说SpringBoot可以达到免xml文件配置从而给开发性能带来巨大的提升[11]。

    SpringBoot可以接收以JSON数据格式传递过来的数据进行功能上的逻辑操作。JSON是一种轻量级的数据互换方式,容易被计算机或者应用程序进行读、写、解析或者生成。与用户定义的消息格式和XML、JSON在数据传输开销和数据传输时间上具有明显的优势。JSON并不局限于WEB应用程序,在任何情况下,只要应用程序需要被构造成文本来交换和存储,就可以使用它[12]。

      1. AngularJS

    AngularJS诞生于2009年,由Google开发并维护的开源JavaScript框架,在传统的MVCModel-View-Controller)设计模式上AngularJS进行了一定程度的改变和改进。采用了MVVMModel-View-ViewModel)设计编程模式去书写代码,主要是为了将视图层(View)和数据模型层(Model)分离,方便开发人员专注于在ViewModel层中进行业务逻辑和数据开发,也可在其他ViewModel中重用某一个ViewModel中的业务逻辑。使用MVVM设计模式后视图层可以独立于Model的变化和修改,一个ViewModel可以绑定多个视图上。

    Angular最大程度的减少了对页面DOM结构的操作,通过简单易懂的指令操作页面结构和数据信息[13]AngularJS通过数据在模型层和视图层之间能够进行双向绑定的特点将数据显示在视图上,即模型层和视图层都能随相互之间的改变而实时变化。用户对于界面的操作、数据的输入或事件的发生都能及时传送到模型层,同时数据变化是也能够实时更新到用户界面上进行展示[14],绑定过程如图2-1所示。

    Controller

    加载,处理器

    ViewModel

    $scope

    加工处理

    Model

    更新

    更新

    双向绑定

    Command-ngclick

    通知-$digest

    View

    声明式模板

     

    图2-1 双向绑定数据示意图

    AngularJS中提供了大量的服务来提供某个特定的功能。依赖注入机制允许开发人员可以请求需要的依赖,而不是去寻找它们[15]。在AngularJS中可用来依赖注入的有三种类型,servicefactoryproviderservice作为单例对象在需要时被创建,只有在生命周期结束的时候才会被清除。AngularJS还提供了很多内在的服务,如$http$route$location等,其中三者关系如图2-2所示。

    $provide

    Provides

     Services

    Constant()

    value()

    factory()

    service()

    provide()

    decorator()

    define

    define

     

    图2-2 Service、Factory和Provide三者关系图

      1. PostgreSQL数据库

    PostgreSQL原名为Postgres,在1995年添加了SQL(结构化查询语言)功能后,变成了Postgres95。在1996年,开发人员再次加强了SQL的标准和提升了后端的速度,更名为PostgreSQLPostgreSQL数据库是一个功能强大的并且开放源代码的对象-关系型数据库管理系统。

    PostgreSQL支持大多数基于最新ISOANSI标准的SQL数据库查询语句, 保证数据库事务的ACID (Atomicity, Consistency, Isolation, Durability)Postgre SQL的优势在于其在多平台上的适用性, 构架的高度可扩展性, 支持复杂数据类型以及成熟的代码库[16]

    PostgreSQL数据库系统是唯一支持管理完整性、数据库事务、多版本并行控制和数据完整性检查等特性的一种自由数据库管理系统。PostgreSQL数据库支持所有类型的数据库客户端接口进行连接、访问和操作。数据库被用来快速存储数据信息和检索数据信息,提供了对数据全方面的检索方式,采用经典的C/Sclient/servce)结构,也就是一个客户端对应着一个服务器端的一对一模式。

     

    本章是对系统进行的需求和功能进行总体的分析,主要是对系统进行可行性分析,以及设计系统的结构和功能模块。

      1. 可行性分析

    可行性分析是全面的、系统的、以经济效益为核心地分析围绕影响项目的各种因素,本文从技术、经济两大方面进行可行性研究。

        1. 技术可行性分析
  • 相关阅读:
    Pytorch学习——Pytorch的入门操作 02(未完)
    《基于Easydl的虎狮检测》计算机新技术讲座课程设计
    EVPN基本原理
    Django中重写model_to_dict方法,兼容接口返回展示时间和外键的
    浏览器缓存
    第三章:最新版零基础学习 PYTHON 教程(第十二节 - Python 运算符—Python 中的运算符函数 - 套装1)
    这是我见过最详细易懂的Redis笔记(PDF可下载),上线三天破百万点赞
    【java8新特性】02:常见的函数式接口
    vue中的基础知识
    Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
  • 原文地址:https://blog.csdn.net/zlstly/article/details/127940371