- 博客(50)
- 收藏
- 关注
原创 苍穹外卖(五):员工管理、菜品分类管理
系统中的员工很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。进入到sky-server模块中,在com.sky.controller.admin包下,在EmployeeController中创建新增员工方法,接收前端提交的参数。系统中的分类很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。进入sky-pojo模块,在com.sky.dto包下,已定义EmployeeDTO。
2024-08-15 12:00:00
783
原创 苍穹外卖(四):swagger导入接口文档
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(它的主要作用是:使得前后端分离开发更加方便,有利于团队协作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。
2024-08-15 07:30:00
865
原创 苍穹外卖(三):MD5完善登录功能
MD5信息摘要算法(Message-Digest Algorithm5)算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。MD5的用途主要有:一致性验证:比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。数字签名:可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。
2024-08-14 12:30:00
754
原创 苍穹外卖(二):开发环境搭建
开发环境搭建主要包含和两部分。作为服务端开发工程师, 我们课程学习的重心应该放在后端的业务代码上, 前端的页面我们只需要导入资料中的nginx, 前端页面的代码我们只需要能看懂即可。
2024-08-14 09:00:00
1868
原创 苍穹外卖(一):项目介绍
作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。那么这一小节,我们将从软件开发流程、角色分工、软件环境 三个方面整体介绍一下软件开发。在开发苍穹外卖这个项目之前,我们需要全方位的来介绍一下当前我们学习的这个项目。接下来,我们将从项目简介、产品原型、技术选型三个方面来介绍苍穹外卖这个项目。
2024-08-13 12:00:00
2118
原创 MyBatis-Plus
MyBatis-Plus 🚀 为简化开发而生MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单
2024-08-13 08:00:00
789
原创 微头条项目补充
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。
2024-08-12 12:00:00
500
原创 过滤器概述
Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法。
2024-08-12 08:00:00
1108
原创 监听器概述
监听器:专门用于对域对象对象身上发生的事件或状态改变进行监听和相应处理的对象监听器是GOF设计模式中,观察者模式的典型案例观察者模式: 当被观察的对象发生某些改变时, 观察者自动采取对应的行动的一种设计模式监听器使用的感受类似JS中的事件,被观察的对象发生某些情况时,自动触发代码的执行监听器并不监听web项目中的所有组件,仅仅是对三大域对象做相关的事件监听监听器的分类web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类按监听的对象划分。
2024-08-11 12:00:00
865
原创 微头条项目开发(SSM)
前端技术栈ES6作为基础JS语法nodejs用于运行环境npm用于项目依赖管理工具vite用于项目的构建架工具Vue3用于项目数据的渲染框架Axios用于前后端数据的交互Router用于页面的跳转Pinia用于存储用户的数据LocalStorage作为用户校验token的存储手段Element-Plus提供组件后端技术栈JAVA作为开发语言,版本为JDK17Tomcat作为服务容器,版本为10.1.7Mysql8用于项目存储数据Servlet用于控制层实现前后端数据交互。
2024-08-11 00:09:03
747
原创 会话管理与实现
cookie是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。服务端创建cookie,将cookie放入响应对象中,Tomcat容器将cookie转化为set-cookie响应头,响应给客户端客户端在收到cookie的响应头时,在下次请求该服务的资源时,会以cookie请求头的形式携带之前收到的Cookiecookie是一种键值对格式的数据,从tomcat8.5开始可以保存中文,但是不推荐。
2024-08-10 12:00:00
984
原创 Servlet详解
Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范;从代码层面上来讲Servlet就是一个接口用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中,Servlet主要负责接收处理请求、协同调度功能以及响应数据。我们可以把Servlet称为Web应用中的控制器不是所有的JAVA类都能用于处理客户端请求,能处理客户端请求并做出响应的一套技术标准就是Servlet。
2024-08-10 08:00:00
643
原创 Spring全家桶(六):SSM整合原理
微观:将学习的Spring SpringMVC Mybatis框架应用到项目中!SpringMVC框架负责控制层Spring 框架负责整体和业务层的声明式事务管理MyBatis框架负责数据库访问层宏观:Spring接管一切(将框架核心组件交给Spring进行IoC管理),代码更加简洁。SpringMVC管理表述层、SpringMVC相关组件Spring管理业务层、持久层、以及数据库相关(DataSource,MyBatis)的组件使用IoC的方式管理一切所需组件实施。
2024-08-09 12:00:00
420
原创 Spring全家桶(五):SpringMVC
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称(),但它通常被称为“Spring MVC”。在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后,目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的首选方案。Spring 家族原生产品,与IOC容器等基础设施无缝对接表述层各细分领域需要解决的问题全方位覆盖,提供。
2024-08-09 09:00:00
926
原创 MyBatis详解
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
2024-08-08 14:00:00
935
原创 Spring全家桶(四):Spring 事务
事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败核心点掌握目标spring框架理解spring家族和spring framework框架spring核心功能组件管理、ioc容器、ioc/di , 三种配置方式spring aopaop和aop框架和代理技术、基于注解的aop配置spring tx声明式和编程式事务、动态事务管理器、事务注解、属性。
2024-08-08 08:00:00
1420
原创 Spring全家桶(三):Spring AOP
AOP一种区别于OOP的编程思维,用来完善和解决OOP的非核心代码冗余和不方便统一维护问题!代理技术(动态代理|静态代理)是实现AOP思维编程的具体技术,但是自己使用动态代理实现代码比较繁琐!Spring AOP框架,基于AOP编程思维,封装动态代理技术,简化动态代理技术实现的框架!SpringAOP内部帮助我们实现动态代理,我们只需写少量的配置,指定生效范围即可,即可完成面向切面思维编程的实现!对实现了接口的类应用切面对没实现接口的类应用切面new。
2024-08-07 16:18:53
1131
原创 Spring全家桶(二):Spring IOC容器
IoC容器Spring IoC 容器,负责实例化、配置和组装 bean(组件)核心容器。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。IoC(Inversion of Control)控制反转IoC 主要是针对对象的创建和调用控制而言的,也就是说,当应用程序需要使用一个对象时,不再是应用程序直接创建该对象,而是由 IoC 容器来创建和管理,即控制权由应用程序转移到 IoC 容器中,也就是“反转”了控制权。
2024-08-07 00:24:03
747
原创 Spring全家桶(一):SpringFramework
广义的 Spring:Spring 技术栈(全家桶)广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。
2024-08-06 22:50:56
1058
原创 SpringBoot基础 :快速入门
在com.itheima这个包下创建一个子包controller然后在controller包下新建一个类:HelloController。
2024-08-06 00:38:24
304
原创 JavaWeb:Maven详解
项目对象模型 (Project Object Model)依赖管理模型(Dependency)构建生命周期/阶段(Build lifecycle & phases)Maven的生命周期就是为了对所有的构建过程进行抽象和统一。描述了一次项目构建,经历哪些阶段。在Maven出现之前,项目构建的生命周期就已经存在,软件开发人员每天都在对项目进行清理,编译,测试及部署。虽然大家都在不停地做构建工作,但公司和公司间、项目和项目间,往往使用不同的方式做类似的工作。
2024-08-06 00:19:02
1053
原创 MYSQL初步
address:一个字符串类型的列,最大长度为100个字符,用来存储学生的家庭住址。email:一个字符串类型的列,最大长度为50个字符,用来存储学生的电子邮箱。pwd:一个字符串类型的列,最大长度为30个字符,用来存储学生的密码。name:一个字符串类型的列,最大长度为30个字符,用来存储学生的姓名。birthday:一个日期和时间类型的列,用来存储学生的出生日期,如果没有提供出生日期,则默认为NULL。sex:一个字符串类型的列,最大长度为2个字符,用来存储学生的性别。delete 不会自增归0。
2024-08-05 23:47:45
327
原创 数据结构课程设计选做(四)---行车路线(图)
3,循环直到队列为空:从队列中取出疲劳度最小的点,并标记为已访问。遍历该点的所有邻接点:如果邻接点已被访问,则跳过。如果小于邻接点当前的疲劳度,则更新邻接点的疲劳度。4,在每次循环中,选择疲劳度最小的点进行处理,并更新与其相邻的点的疲劳度。通过不断选择疲劳度最小的点,逐步扩展最短路径的范围,直到所有点都被访问过或者终点的疲劳度不再更新。Dijkstra算法是一种贪心算法,用于解决单源最短路径问题,即从一个起点到其他所有点的最短路径。1,初始化:将起点的疲劳度设置为0,其他点的疲劳度设置为无穷大。
2024-04-15 07:15:00
1839
原创 数据结构课程设计选做(三)---公共钥匙盒(线性表,栈,队列)
用于对借还钥匙的信息进行排序。排序的规则是首先按时间早的优先,然后是还钥匙优先,最后是编号小的优先。,用于存储钥匙盒中的钥匙情况,下标表示钥匙位置,值表示钥匙编号。通过循环,读取每次操作的借还钥匙信息,并将这些信息存储在结构体数组。遍历排序后的借还钥匙信息,根据借还标识将钥匙放入或取出钥匙盒中的对应位置。最后输出最终的钥匙盒情况。中,同时对应的操作次数进行递减。对存储的借还钥匙信息进行排序,排序规则使用了自定义的比较函数。,用于存储借还钥匙的信息,包括钥匙编号、时间和借还标识。自定义了一个比较函数。
2024-04-15 07:00:00
754
原创 数据结构课程设计选做(二)---魔法优惠劵(排序)
首先,从标准输入读入优惠券面值和商品价格,并排序。然后使用两个指针同时遍历数组,计算当前优惠券面值乘以商品价格并累加到最大利润中。2.2-11【1】魔法优惠劵(排序)正确-25 / 25分(满分)。
2024-04-14 07:15:00
193
原创 数据结构课程设计选做(一)---数字排序(哈希、排序)
遍历整数数组a,将每个整数作为索引,将辅助数组b中相应位置的值加1,表示该整数出现了一次。接着,通过排序算法(这里使用的是sort函数)对整数数组a进行排序,以便后续按照出现次数从多到少输出结果。最后,通过遍历辅助数组b,从出现次数最多的整数开始,逐个输出整数及其出现次数。使用计数排序的思想,创建一个辅助数组b,用于统计每个整数出现的次数。2.1.4 CSP测评结果。
2024-04-14 07:00:00
338
原创 数据结构课程设计(八)---排序算法比较 [排序]
由随机函数产生十个样本,每个样本5000个数据,数据存储在samples.txt中。八大排序方式的思想。设置控制台字体的颜色以增加可读性,再例如。由于排序方式很多,没有特定的结构体。后清空屏幕,以达到动态刷新的效果。时间复杂度为程序中已有直观显示。
2024-04-13 08:15:00
436
原创 数据结构课程设计(七)---求图的中心顶点 [图]
这段代码实现了弗洛伊德算法,用于求解有向图中任意两点之间的最短路径。该算法采用动态规划的思想,通过三重循环计算出任意两点之间的最短路径。函数实现设置字体颜色,使交互界面更加美观。时间复杂度为O(n^3)。函数实现弗洛伊德算法,
2024-04-13 08:00:00
538
原创 Tomcat无法成功启动——双击startup.bat闪退的解决办法
则根据PID(进程id号)来查这个占用端口的是哪个程序,命令是“tasklist|findstr "27900"”(注意PID是最后一列的数,输入命令行的时候记得该空格的地方要空格,如下图):如上图通过PID找到占用8080端口的程序是java.exe,下面在通过命令行“taskkill /f /t /im java.exe”结束该进程(注意“/”之前都有空格):至此,java.exe这个进程就被结束了。SET JAVA_HOME=D:\Java\jdk1.7 (java jdk目录)SET TOMCAT
2024-04-12 23:17:18
554
原创 HTML&CSS(二)---HTML常见标签
HTML标题标签用于定义文档中的标题和子标题。HTML提供了六个级别的标题,分别是<h1>到<h6>,其中<h1>表示最高级别的标题,<h6>表示最低级别的标题。这些标签通常用于创建内容结构,帮助搜索引擎和读者理解文档的重要性和层次结构。<h1><h2><h6>标题标签不仅在视觉上呈现大小不同的文本,而且在SEO(搜索引擎优化)中也扮演着重要角色。搜索引擎使用标题标签来确定页面内容的主题和结构,因此它们对于提高页面在搜索结果中的排名非常重要。
2024-04-12 21:34:27
1259
1
原创 HTML&CSS(一)---HTML入门
标记语言(Markup Language)是一种用于对文本进行标记和注释的计算机语言,它使用特定的符号或标签来表示文本的结构、格式和含义。在万维网上,超文本通过超链接将全球的信息资源连接起来,用户可以通过浏览器访问这些资源,并在不同的网页和文档之间自由跳转。超文本的关键特性是它的交互性和动态性,用户可以通过超链接主动探索和选择信息,而不是被动地按照固定的顺序阅读。标记语言的目的是将文本内容与样式、布局和功能性的指令分离,使得文档的创建、编辑和显示更加灵活和标准化。1.3 超文本是什么。
2024-04-12 20:54:33
1930
原创 数据结构课程设计(六)---寻找最短路径 [图]
其中dis数组用于记录起点到各顶点的最短距离,path数组用于记录最短路径的前驱节点,基于Dijkstra算法,用于求解有向图中从指定起点到其他顶点的最短路径和距离。值设为0,将起点标记为已访问。循环n-1次,每次找到当前未访问的距离最小的顶点。函数创建有向图,输入图的顶点数和边数,并输入每条边的起点、终点和权值。相邻的顶点的最短距离和路径:如果发现一条新的最短路径,则更新。........(因有效性检验未通过,终止程序)输出起点到各顶点的最短距离和最短路径。数组用于标记顶点是否已经访问。
2024-04-12 20:33:49
844
1
原创 数据结构课程设计(五)---输出树的路径 [树]
函数中,首先读取输入的节点数量 n,然后根据输入的父节点和子节点的关系,构建了一个树的数据结构,并对树进行了打印路径以及打印树形结构的操作。TreeNode(int value) : val(value), child_num(0) //构造函数。函数用于打印树的形状,包括树的层次结构和每个节点的值,采用了队列和哈希表的方式实现。,其中包括节点值、子节点指针数组、子节点数量等成员变量,并且定义了打印路径函数。函数用于打印从根节点到叶子节点的所有路径,采用了递归的方式进行处理。定义了一个树的结构体。
2024-04-12 20:20:24
650
原创 数据结构课程设计(四)--- Huffman编码与解码 [Huffman编码][二叉树]
从根节点开始遍历哈夫曼树,根据编码的0或1选择左分支或右分支,当遇到叶子节点时,将叶子节点对应的字符添加到解码结果字符串中。每次从队列中取出两个频率最小的节点,创建一个新节点作为它们的父节点,频率为子节点频率之和。将新节点加入队列,直到队列只剩一个节点,即为根节点。从根节点开始遍历哈夫曼树,左分支标记为0,右分支标记为1,将路径上的编码保存在每个节点中。对于每个字符,根据编码表找到对应的哈夫曼编码,并将编码拼接成一个编码结果字符串。
2024-04-12 20:15:28
994
原创 数据结构课程设计(三)---算术表达式求值 (必做) (栈)
然后遍历表达式中的每个字符:1,如果是数字或小数点,将其添加到字符串numStr中,以便后续转换为实际数字。3,如果是右括号")",则执行相应的计算操作,直到栈顶元素是左括号为止。4,如果是运算符,则通过。如果遍历完表达式后,数字字符串numStr非空,则将其转换为实际数字,并压入数字栈nums中。函数判断符号的优先级,如果栈顶运算符的优先级大于等于当前运算符的优先级,则执行相应的计算操作,直到栈顶运算符的优先级小于当前运算符的优先级或栈为空。来控制字体颜色,其中,入栈显示为绿色,出栈显示为红色。
2024-04-11 00:45:44
592
1
原创 数据结构课程设计(二)---迷宫问题(必做)(栈与队列)
在主函数中,程序首先读取文件中的迷宫信息,然后让用户输入起点和终点坐标,并进行DFS搜索,最后输出找到的路径或者提示无解。这段代码实现了一个迷宫求解的功能,使用了DFS深度优先搜索算法以及回溯法的思想来查找从起点到终点的路径。来控制字体颜色,若是找到可以连通的路径,则以绿色输出路径;若是不能找到,则以红色输出:“搜索完毕,此迷宫无解!函数)等实现栈的基础功能,同时还实现了打印栈(在结果显示方面,为了实现良好交互的界面,通过。Node* base;// 节点数据结构,存储节点。// 栈数据结构,存储栈。
2024-04-11 00:40:24
624
1
原创 数据结构课程设计(一)---系统进程统计(必做)(链表)
不断获取系统中的进程信息,并记录下这些进程的内存使用情况、持续时间等信息,然后对比前后两次获取的进程信息,找出已结束的进程并记录其结束时间和持续时间,把它们存放在。函数用于刷新后更新进程,通过比对当前进程链表和已结束进程链表,找出新的进程并添加到当前进程链表和已结束进程链表中,并通过。函数将当前进程链表和已结束进程链表的信息显示出来,包括进程名、PID、内存使用情况、持续时间和结束时间。来控制字体颜色,当前进程中的信息为绿色,已结束进程中的信息为红色,便于区分。函数创建的已结束进程链表中。
2024-04-10 21:21:10
280
原创 C++课程设计--图书管理系统
总所周知,C++是一门面向对象的编程语言,具有结构清晰,程序模块化和结构化;易扩展,代码重用率高,易维护,系统低耦合,利于减少程序的后期维护工作量等优点。多文件组织形式和类的运用更利于系统功能的模块化,封装则很好的保护了系统的数据,防止被外部破坏,提高了系统的稳定性。图书进行更有效的管理。通过实现读者自主查询,分权限管理系统的方法,既节约的人工成本,方便使用,又可以保护系统中的信息,利于进行维护。来说,实施本系统不仅可以减少工作人员数量,降低成本,而且可以大大提高工。本系统代码总行数为:2476。
2024-04-10 21:02:28
1474
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人