校园美食猎人:Spring Boot技术的美食探索应用

news2024/9/22 15:26:17

第1章 绪 论
1.1课题背景
2021年处于信息高速发展的大背景之下。在今天,缺少手机和电脑几乎已经成为不可能的事情,人们生活中已经难以离开手机和电脑。针对增加的成本管理和操作,商家非常有必要建立自己的网上校园周边美食探索及分享平台,这既可以让更多的人体验到网络所带来的方便。
以往的校园周边美食相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了社会发展的各个领域,并且发挥着十分重要的作用。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络, 校园周边美食探索及分享平台的开发各方面的管理更加科学和系统,更加规范和简便。
本文所设计的在线校园周边美食探索及分享平台就是在这种客观条件下进行的,在校园周边美食探索及分享平台管理方面,传统的管理方式显然无法与在线校园周边美食探索及分享平台相比,在线校园周边美食探索及分享平台正发挥着越来越重要的作用。在线校园周边美食校园周边美食探索及分享平台的速度快、信息量大、安全、简单都是传统模式难以企及的优点,在本文中的在线校园周边美食探索及分享平台是一个基于MySQL数据库和Spring Boot框架的。
1.2 课题意义
社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对服务行业的管理、服务的要求也越来越严格。为适应时代的发展,各大商家开始广泛地使用电脑来进行管理,为提高工作人员效率提供了一种新的方式,并且减轻了他们的工作强度,在树立商家形象的同时,为用户提供更加方便、简单而高效的服务,实现双赢。
本系统即为方便管理员、用户而制作的网上校园周边美食探索及分享平台,结合了用户的需求,设计出的一个基于Java、MySQL的网上校园周边美食探索及分享平台。
1.3 开发工具及技术
网上校园周边美食探索及分享平台从本质上讲是一个电子商务模式综合而成的系统。实现了个人中心、用户管理、美食鉴赏管理、我的好友管理、我的收藏管理、系统管理等基本功能。
主要用到以下技术:
1.3.1 B/S架构
B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。
1.3.2 Java技术介绍
Java语言擅长开发互联网类应用和商家级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。
Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。
为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。
1.3.3 mysql数据库介绍
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
本系统使用了MySQL数据库,建立了多张数据库表来存储租赁以及汽车租赁平台相关数据。系统中主要应用查询(select),修改(update),删除(delete)以及增加(insert)等语句来实现系统功能。

1.3.4 Spring Boot框架

Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。
Spring Boot特点:
1、创建一个单独的Spring应用程序;
2、嵌入式Tomcat,无需部署WAR文件;
3、简化Maven配置;
4、自动配置Spring;
5、提供生产就绪功能,如指标,健康检查和外部配置;
6、绝对没有代码生成和XML的配置要求;
安装步骤:
最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。

1.4 国内外现状
校园周边美食探索及分享平台随着互联网的发展逐渐被人们所接受并使用,并且在现实生活中为商家带来了非常大的业务收入,同时创造了不少的就业机会。随着社会的不断进步和科技的发展,网络订餐将取代传统订餐是大势所趋。在全世界范围内,计算机技术已经应用于美食业,并且非常成熟,这是网络点餐发展良好的必备条件。在国内,饿了么、美团、大众点评等网络订餐的APP已经有了很大成就。它们操作简单,货物齐全,价格合理,模式安全,以及为了吸引客户,不断地提供优惠券,红包,打折等活动,因此得到了大多数的青年以及网络使用者的青睐。数据显示,到2017年,我国外卖市场交易额达到2045.6亿元,其中饿了么占比41.7%,美团外卖占比41.0%,百度外卖占比13.2%[[]]。但是,这些总所周知的订餐APP对广大顾客的确非常实用和方便,但是对于入驻其中的商家来说,还是会减少应得的利润和收入。在我就读的大学中,很多外卖平台的商家表示外卖平台经常推出的红包、打折、福利等活动,导致客户结付的订单金额远低于商品价格,虽然商家和平台会分摊这部分费用,但是商家仍然会比自己应得的收入要少。这种流行的外卖订餐APP,由于推广时间长,效果好,因此积累了非常多的用户量。然而在保障商家利润这一点上,我认为基于微信小程序开发出来的外卖订餐系统会对商家和顾客更加公平。
而微信小程序自上线以来,已经运营超过200万的程序,2017年12月微信更新后增加了“跳一跳”小游戏,瞬间在朋友圈掀起了狂风大浪。不仅仅是游戏,包括一些线上商城,已经开发的APP,类似公众号,都被微信小程序囊括在内[[]]。基于微信小程序所开发出来的外卖订餐系统,在保障了原有的APP所拥有的基本功能的同时,会精简APP的界面,也让商家更加自由。只是小程序不是十全十美的,开发出小程序订餐系统的同时,也需要商家多去考虑如何推广自己的小程序,让更多的人知道,不过这只是一个时间问题。目前,从媒体得到的数据来看,转战小程序的行业虽多,收到的效果却各不相同。例如旅游出行行业借助小程序迎来第二春,而如传统视频或者较复杂的手游等,因使用频率、用户体验和技术限制等因素,并不适合搭上小程序的热潮。网络订餐是属于前一种类型,适当经营可以创造大好前景[[]]。
在国外,网络订餐的发展开始和持续时间都更长,美国最大的外卖网站GrubHub已经经营十余年,日订单量达到十余万单,市值20多亿美金。但是同国内相比,还是稍逊。由于国外行业的传统势力相对强势,人口密度小,人力成本高,以及他们的点餐习惯,导致网络点餐虽然开始的早,但是发展相对缓慢。

第五章 软件测试
测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。
5.1软件测试的重要性
只有在运行和维护阶段之前经历大量的测试的软件,才能说明它的质量是经得起检验的。最近计算机业界也都一致认为,测试应该存在于软件设计的每个阶段,因为越早发现错误,修复起来就越容易。
实际上,对于一个软件应用,错误是必然存在的,无论使用何种技术或手段,都不可能绝对的排除软件漏洞。测试是随着软件开发一同诞生的,两者是共同发展进步的。实际上,测试可以大幅度的降低维护的成本,如果一个漏洞在开发的早期就被发现,那么修复它的成本远比上线后再修复的成本要低得多。
5.2测试实例的研究与选择
测试有白盒测试和黑盒测试两种方式。
其中,白盒测试是将软件看成一个透明的白盒子,按照程序的内部控制结构和处理技术逻辑来选定测试用例、软件系统测试的逻辑路径及过程需要进行管理测试,又称玻璃盒测试。因此白盒测试需要选择足够多的测试用例,覆盖尽可能多的代码来发现程序中的错误。
黑盒测试,也称为功能测试。它将需软件看作一个黑盒,像一个普通用户一样来模拟软件的使用流程。黑盒测试通过大量的输入边界值或错误数据,来检查是否可产生正确的输出。
本系统测试 主要选择黑盒测试,少量采用白盒测试。通过测试达到以下测试目的:
1.检查各大功能模块的运行,确保其能够正确运行,并检查各页面的完整性,保证页面完整。
2.检查各个接口是否可以正确地输入和输出,保证数据流通稳定可行。
3.检查数据结构,保证其和外部接口没有访问错误,访问顺利。
4.检查原计划的性能需求有没有完成,运行流畅。

本系统的测试用例(部分):
登录部分测试用例
编号 对象 项目 操作 预期结果 结果
1 登录 登录提示 使用正确的账号密码登录 成功登录 预期结果
2 登录提示 使用正确的账号但错误的密码登录 提示密码错误 预期结果
3 登录提示 使用错误的账号登录 提示不存在账户 预期结果
4 登录提示 不输入账号,点击登录 提示输入账号 预期结果
5 登录提示 输入账号但不输入密码点击登录 提示输入密码 预期结果
6 登录入口 已登录账号,查看登录入口 不显示登录入口 预期结果

5.3测试环境与测试条件
处理器:Inter Core I7-4710MQ四核处理器
内存:4GB
硬盘:1T
操作系统:Windows 10
数据库:MySQL
5.4系统运行情况
全部测试用例都已通过(包括但不限于以上测试用例),且不存在漏洞,实现了论文开始时所作要求。本系统运行稳定,使用流畅,可以满足用户需求。
5.5系统评价
5.5.1系统功能评价
试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。
5.5.2系统技术评价
系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。
5.5.3系统经济评价
在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2155357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLMs之MemLong:《MemLong: Memory-Augmented Retrieval for Long Text Modeling》翻译与解读

LLMs之MemLong:《MemLong: Memory-Augmented Retrieval for Long Text Modeling》翻译与解读 导读:MemLong 是一种新颖高效的解决 LLM 长文本处理难题的方法,它通过外部检索器获取历史信息,并将其与模型的内部检索过程相结合&…

IPsec-VPN中文解释

网络括谱图 IPSec-VPN 配置思路 1 配置IP地址 FWA:IP地址的配置 [FW1000-A]interface GigabitEthernet 1/0/0 [FW1000-A-GigabitEthernet1/0/0]ip address 10.1.1.1 24 //配置IP地址 [FW1000-A]interface GigabitEthernet 1/0/2 [FW1000-A-GigabitEthernet1/0/2]ip a…

C#测试调用PdfiumViewer浏览PDF文件的基本用法

印章管理项目后续准备实现打开浏览PDF文件并进行盖章的功能,需要在Winform中使用控件在线浏览PDF文件,在网上找了几个开源的PDF浏览控件进行测试,以便应用于印章管理项目。本文测试调用PdfiumViewer模块打开及浏览PDF文件。   PdfiumViewer…

VisionPro - 基础 - 模板匹配技术和在VP中的使用 - PMAlign - PatMax(4)- 控制模板的匹配

前言: 针对PatMax 的高级应用和原理,在这一节继续进行说明:这一节主要考虑的是PatMax模板匹配的原理:如何控制模板的匹配。 本节先介绍了几个模板匹配的衡量标准,比如模板匹配分数,和模板的几种模板匹配的…

JAVA并发编程系列之Semaphore信号量剖析

腾讯T2面试,现场限时3分钟限最多20行代码,模拟地铁口安检进站。其中安检入口10个,当前排队人数是100个,每个人安检进站耗时5秒。开始吧! 候选人,心中万马奔腾!!!吐了一口82年老血&am…

re题(37)BUUCTF-[GWCTF 2019]xxor

BUUCTF在线评测 (buuoj.cn) 用ida打开文件,ctrle定位main函数 也可以用shiftF12查找字符串,找与我们解题有关的字符串 通过字符串定位到引用字符串的函数 进入main entry 但还不是我们要分析的代码 进入__libc_start_main中的main参数,是我们…

C++20 std::format

一、前言 1、传统 C 格式化的问题与挑战 可读性差:使用 C 中的 printf 和 scanf 家族函数进行格式化输出和输入时,它们的语法较为复杂,难以阅读。在较大的代码项目中,可读性差会导致维护困难。类型安全性差:printf 和…

IS-ISv4/6双栈

文章目录 IS-ISv4/6双栈实验要求配置 IS-ISv4/6双栈 实验要求 配置双栈 R1、2、3、4配置 IS-ISv4 和 IS-ISv6,配置IPv6多拓扑 上面为Level-1类型、中间为Level-1-2、下面是Level-2类型 还有就是说ATT位置1有一定要求连接L1/2连接L1或者L2类型路由器,至…

java23发布啦

2024年9月java23发布啦!!! JDK 23 提供了12 项增强功能,这些功能足以保证其自己的JDK 增强提案 - JEP ,其中包括 8 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能和 JDK 中包含的工具的改进。除了 Java 平台上…

KVM环境下制作ubuntu qcow2格式镜像

如果是Ubuntu KVM环境是VMware虚拟机,需要CPU开启虚拟化 1、配置镜像源 wget -O /etc/apt/sources.list https://www.qingtongqing.cc/ubuntu/sources.list2、安装kvm qemu-img libvirt kvm虚拟化所需环境组件 apt -y install qemu-kvm virt-manager libvirt-da…

安装黑群晖,并使用NAS公网助手实现DDNS动态域名解析

很多人都会安装安装一个黑群晖进行练手,黑群晖有很多玩法和NAS套件,而且黑群晖安装比较简单,没有复杂的步骤,这也是很多人玩黑裙的理由,这里教大家如何安装黑群晖,并且安装神卓互联NAS公网助手实现DDNS动态…

arthas -- xxljob本地调试

方案一:测试类 package cn.wanda.wic.content.job.xxljob;import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;SpringBootTest public class ShopResourceMigrationJobTest {Reso…

C\C++内存管理详解

本次内容大纲: 1.C/C内存分布 大家看看下面的代码 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";char* pChar3 "abcd";int…

本地快速部署一个简洁美观的个人Halo博客网站并发布公网远程访问

文章目录 前言1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤:1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 前言 本文主要介绍如何在Cen…

【Python日记】好丝滑的贪吃蛇

文章目录 原文:https://blog.c12th.cn/archives/39.htmlPython 贪吃蛇(pygame)前言部分代码完整代码 原文:https://blog.c12th.cn/archives/39.html Python 贪吃蛇(pygame) 前言 源代码参考B站: BV1cs411T7wW 效果展示 部分代码 框架 # 初始化 pygam…

基于微信小程序校园订餐的设计与开发+ssm(lw+演示+源码+运行)

摘 要 人民生活水平的提高就会造成生活节奏越来越快,很多人吃饭都采用点外卖的方式。现在点外卖的平台已有很多,大多都需要安装它们的APP才可以使用,并且没有针对校园。如果一味的使用外卖平台不仅会造成商家成本的增加,还不利于…

django应用JWT(JSON Web Token)实战

文章目录 一、什么是JWT二、为什么使用JWT三、在django项目中如何应用JWT1、安装djangorestframework-simplejwt库:2、在settings.py中配置JWT认证:3、在urls.py中配置JWT的获取和刷新路由: 四、JWT如何使用1、调用生成JWT的接口获取JWT2、客…

C++:类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast)、RTTI

C:类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast)、RTTI 一、C语言类型转换二、C新增强制类型转换2.1 新增类型转换:static_cast2.2 新增类型转换: reinterpret_cast2.3 新增类型转换&#xff1a…

新手上路:在Windows CPU上安装Anaconda和PyCharm

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一. 确认自己是CPU为什么选择CPU教程?GPU与CPU的区别如何判断自己是CPU 二. Anaconda 安装包 和 Pycharm 安装包步骤1:下载Anaconda步骤2&am…

【d46】【Java】【力扣】234.回文链表

思路 判断是否是回文,需要:一个指针指向头,一个指针指向尾,两个指针一边向中间靠拢,一边判断数值是否相同 对于单链表,不方便获得pre,如果将节点放进 数组/list ,数组/list可以直接…