# 论文 **Repository Path**: MrFruits/thesis ## Basic Information - **Project Name**: 论文 - **Description**: 岗位职责: 1、负责产品前端功能设计、开发、测试和调优; 2、前端基础框架和组件的开发和维护 3、参与或者负责公司产品的前端核心模块的架构设计和开发 岗位要求: 2、具有较丰富的的Vue.js项目开发经验,实现UI设计效果。熟悉前端工程的构建、打包、部署; 3、能够熟练使用Element UI组件库搭建前端页面; 4、熟悉常用可视化开发库 - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-26 - **Last Updated**: 2022-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 食堂 ### 介绍 - 为师生提供了一个食堂点餐的平台。 - 食堂人员可以在平台上进行菜单管理、订单管理、分类管理、送餐管理。 - 师生可以小程序上查看菜单、下单、订餐、评价。 - 食堂报餐系统,适合政府、企业和事业等集体单位的订餐服务,无需磁卡、扫描仪等设备,维护简单,后勤管理省心省事,使用微信扫码代替传统的打卡刷卡,用手机订餐取代传统打卡刷卡订餐的服务系统。 - 食堂报餐系统已在多个政府、企业、事业等集体单位饭堂使用,管理员在手机上即可管理、审核、停用、充值等操作,后勤管理部门反馈:系统稳定,反应灵敏(手机扫码,马上就显示是否订餐以及扣费情况信息)。 ### 技术选型与概念 - 系统环境:微软操作系统 - 语言:爪哇 - 编辑器:IntelliJ IDEA(爪哇集成开发环境) - 数据库管理工具:MySQL(关系型数据库管理系统) - 数据库连接池:Druid(数据库连接池) - 前端技术:HTML(超文本标记语言),CSS(层叠样式表),JavaScript(浏览器脚本),AJAX(异步 JavaScript 和 XML ) - 前端框架:Vue(渐进式 JavaScript 框架)、Vuex(状态管理模式),Vue Router(导航守卫),Element(基于Vue的组件库) - 数据交换格式:JSON(轻量级的数据交换格式,即JavaScript Object Notation) - 后端框架:Spring Boot(基于爪哇的开源框架,用于创建微服务),MyBatis-Plus(基于 Mybatis 简化增删改查操作),Spring Data Jpa(自动建表) - 基于爪哇的单元测试框架:Junit4 - 接口测试工具:Postman - 应用容器:Docker - jar包管理工具:[Maven](https://maven.apache.org/) - 代码托管平台:码云 - 文档编辑:[纯文本格式编写文档 Markdown](https://markdown.com.cn/) ### 方案 1. 异步请求 :使用异步 JavaScript 和 XML,解决同步请求中用户等待而无法进行操作的问题,提升了用户的体验。前后端之间的数据传递采用流行的 JSON 格式。在获取数据方面,使用 @RestController 注解,该注解能够使控制器无刷新回写数据,缩短网页更新耗时,提升用户体验。 2. 前后端技术:基于 Element ,使用异步 JavaScript 和 XML,使用原生浏览器脚本动态显示数据。 3. 用户角色权限 :每个角色对应有其能够操作的菜单面板权限范围,一个用户允许有多个角色。当用户登录的时候会根据其对应的角色显示对应的菜单,以此来达到权限控制,将前后台合并压缩系统的规模,提升效能。 4. SPU、SKU机制 :使用 SPU、SKU 机制对菜品进行管理,以规格的方式分类菜品。 5. [SpringBoot整合SpringSecurity实现令牌认证](https://juejin.cn/post/6844903810603696135)。 6. [百度搜索到自己的网站](https://jingyan.baidu.com/article/4665065804a23ff549e5f8eb.html)。 > 1、SEM(即Search Engine Marketing,搜索引擎营销),一种付费的推广方式 > 2、SEO(即Search Engine Optimization,搜索引擎优化),依靠百度的自己抓取做的自然的优化 ### [JavaScript 概述](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array) ### [ECMAScript 6 | 2015年6月正式发布的JavaScript语言的标准](https://www.runoob.com/w3cnote/es6-tutorial.html) ### [Element](https://element.eleme.cn/#/zh-CN/component/installation) ### [Element 脚手架](https://gitee.com/panjiachen/vue-element-admin) ### Spring Boot概述 #### 介绍 > Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。 #### 功能 1. 独立运行的Spring项目 > Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需通过java -jar xx.jar来运行 2. 内嵌Servlet容器 > Spring Boot 可以选择内嵌Tomcat,Jetty或者Undertow,这样我们无须以war包形式部署项目 3. 提供starter简化Maven配置 > Spring 提供了一系列的starter pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web时,会自动加入一些jar包 4. 自动配置Spring > Spring Boot 会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean,而Spring Boot没有提供支持,则可以自定义自动配置。 5. 准生产的应用监控 > Spring Boot 提供了基于http,ssh,telnet对运行时的项目进行监控 6. 无代码生成和xml配置 > Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,本篇文章将用大量的篇幅讲解 Spring Boot 实现的核心技术。 Spring 4x提倡使用Java配置和注解配置组合,而Spring Boot不需要任何xml配置即可实现Spring的所有配置。 #### 优缺点 1. 优点 > 1. 快速构建项目 > 2. 对主流开发框架的无配置集成 > 3. 项目可独立运行,无须外部依赖Servlet容器 > 4. 提供运行时的应用监控 > 5. 极大地提高了开发、部署效率 > 6. 与云计算的天然集成 2. 缺点 > 1. 如果你不认同Spring框架,这也许是它的缺点,但建议你一定要使用Spring框架 ### 持久化框架之 [MyBatis-Plus](https://baomidou.com/) 概述 1. 基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程 2. 无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对您现有的 Mybatis 构架产生任何影响,而且 MP 支持所有 Mybatis 原生的特性 3. 依赖少:仅仅依赖 Mybatis 以及 Mybatis-Spring 4. 损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作 5. 通用增删改查:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 6. 多种主键策略:支持多达4种主键策略(内含分布式唯一ID生成器),可自由配置,完美解决主键问题 7. 支持ActiveRecord:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可实现基本 CRUD 操作 8. 支持代码生成:采用代码或者 Maven 插件可快速生成 Mapper、Model、Service、Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用(值得一提的是, 它比 Mybatis 官方的 Generator 更加强大!) 9. 支持自定义全局通用操作:支持全局通用方法注入(write once, use anywhere) 10. 内置分页插件:基于 Mybatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于写基本List查询 11. 内置性能分析插件:可输出 结构化数据查询语言 语句以及其执行时间,建议开发测试时启用该功能,能有效解决慢查询 12. 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,预防误操作 ### 层叠样式表预处理语言 [Less](https://less.bootcss.com/) 1. 变量、混合、函数 ### [SpringBoot整合SpringSecurity实现JWT认证](https://blog.csdn.net/jpgzhu/article/details/105200598) 1. 创建SpringBoot工程 2. 导入SpringSecurity与JWT的相关依赖 3. 定义SpringSecurity需要的基础处理类 4. 构建 JWT 工具类 5. 实现令牌验证的过滤器 6. SpringSecurity的关键配置 7. 编写Controller进行测试 ### Spring Data JPA > JPA 全英文名叫Java Persistence API,就是java持久化api,是SUN公司推出的一套基于对象关系映射的规范。 > > JPA 在项目中只用于建表。 > > 增删改查还是交给Mybatis-Plus吧,毕竟它封装的分页、增上改查功能比较通俗全面。 ### [状态管理 Vuex](https://v3.vuex.vuejs.org/zh/) ### [导航守卫 Vue Router](https://v3.router.vuejs.org/zh/) ### [应用容器 Docker](https://www.docker.org.cn/) > 一个开源的软件部署解决方案 > 轻量级的应用容器框架 > 可以打包、发布、运行任何的应用 ### 技术栈 - 服务 - 相关技术:Spring Boot、MyBatis-Plus、Spring Data JPA、Spring Security、JWT、MySQL 等 - 开发工具:IDEA - 网页 - 相关技术:ES6、Less、Vue、Vuex、Vue-router、Vue-cli、Axios、Element、mockjs - 开发工具:IDEA ### 功能 - 权限管理: 用户管理、部门管理、岗位管理、菜单管理、角色管理、字典和参数管理等 ### 项目结构 - 导出文件夹目录结构 - tree src >> ./项目结构.txt ### 使用说明 1. 在操作系统上安装并配置Java环境变量 2. 安装 MySQL 且版本号5.7及以上 3. 将项目部署后运行数据库 [文件](./源码/接口/src/main/resources/db/) 4. 项目启动前检查 5. 运行项目 ### 功能模块 ![功能模块](./文档/功能模块.png) ### 实体类图 ![实体类图](./文档/实体类图.png) ### 流程图 ![请求流程图](./文档/流程图.png) ### 页面截图 ![特色菜品](./文档/特色菜品.png) ![联系我们](./文档/联系我们.png) ### 静态页面方案 - [Gitee Pages](https://gitee.com/help/articles/4136)