
Java项目
文章平均质量分 89
从入门到精通
梅八哥
路虽远,行则将至;
事虽难,做则必成.
展开
-
[学成在线]23-面试题总结
maven依赖版本冲突一般是由于间接依赖导致一个jar包即有多个不同的版本,比如:A依赖了B的1.0版本,C依赖了B的2.0版本,项目依赖A和C从而间接依赖了B的1.0和2.0版本,此时B有两个版本引入到了项目中,当存在版本冲突时可能会出现 ClassNotFoundException、NoSuchMethodError等错误。3)唯一序列号,请求前生成唯一的序列号,携带序列号去请求,执行时在redis记录该序列号表示以该序列号的请求执行过了,如果相同的序列号再次来执行说明是重复执行。原创 2025-05-05 13:56:51 · 1460 阅读 · 0 评论 -
[学成在线]22-自动部署项目
在pom.xml添加docker-maven-plugin插件实现将springboot工程创建镜像,此pom.xml添加docker-maven-plugin插件用于生成镜像。分别修改system-api、content-api、media-api、gateway、auth、checkcode服务的pom.xml文件。将此目录的内容拷贝到虚拟机的/data/soft/nginx/xuecheng_portal_static/dist。将本机的nginx服务停掉,访问www.51xuecheng.cn。原创 2025-05-02 10:56:07 · 1646 阅读 · 0 评论 -
[学成在线]21-人工部署项目
DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了一大批优秀的工具,这些工具包括开发、测试、运维的各各领域,例如:GitHub、Docker、Jenkins、Hudson、K8S、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。所以,在整体生命周期中比较核心的两个阶段是:开发阶段、维护阶段,开发阶段的成果是软件开发完成并成功上线,运维阶段则负责对软件进行维护和升级,而运维阶段通常在一个软件的生命周期中占比最多。原创 2025-04-30 10:15:49 · 1092 阅读 · 0 评论 -
[学成在线]20-在线学习
在视频点播页面需要查询课程信息,课程上线后也需要访问/api/content/course/whole/{courseId}课程预览时请求获取课程的接口为:/open/content/course/whole/{courseId}下边实现/api/content/course/whole/{courseId} 获取课程发布信息接口。登录网站,点击“我的学习”进入个人中心,查看我的课程表中课程是否是当前用户所选课程。没有选课的免费课程、收费课程各一门,其中收费课程具有试学课程。原创 2025-04-28 10:10:02 · 797 阅读 · 0 评论 -
[学成在线]19-支付通知
订单服务完成支付后将支付结果发给每一个与订单服务对接的微服务,订单服务将消息发给交换机,由交换机广播消息,每个订阅消息的微服务都可以接收到支付结果.订单服务通过消息队列将支付结果发给学习中心服务,消息队列采用发布订阅模式。订单服务作为通用服务在订单支付成功后需要将支付结果异步通知给其它微服务。学习资源服务:对收费的学习资料需要购买后下载,与订单服务对接完成支付。学习中心服务:对收费课程选课需要支付,与订单服务对接完成支付。2、支付完成点击“支付完成”,观察订单服务控制台是否发送消息。原创 2025-04-25 10:39:34 · 1100 阅读 · 0 评论 -
[学成在线]18-支付宝支付
支付完成后第三方支付系统会主动通知支付结果,要实现主动通知需要在请求支付系统下单时传入NotifyUrl,这里有两个url:NotifyUrl和ReturnUrl,ReturnUrl是支付完成后支付系统携带支付结果重定向到ReturnUrl地址,NotifyUrl是支付完成后支付系统在后台定时去通知,使用NotifyUrl比使用ReturnUrl有保证。具体的使用方法是在调用下单接口的 API 中传入的异步通知地址 notify_url,通过 POST 请求的形式将支付结果作为参数通知到商户系统。原创 2025-04-23 10:18:09 · 1647 阅读 · 0 评论 -
[学成在线]17-添加选课
本模块实现了学生选课、下单支付、学习的整体流程。网站的课程有免费和收费两种,对于免费课程学生选课后可直接学习,对于收费课程学生需要下单且支付成功方可选课、学习。选课:是将课程加入我的课程表的过程。我的课程表:记录我在网站学习的课程,我的课程表中有免费课程和收费课程两种,对于免费课程可直接添加到我的课程表,对于收费课程需要下单、支付成功后自动加入我的课程表。原创 2025-04-21 10:44:35 · 966 阅读 · 0 评论 -
[学成在线]16-用户授权
本项目是基于角色分配权限,如果要删除用户的权限可以给用户换角色,那么新角色下的权限就是用户的权限;如果不换用户的角色可以删除角色下的权限即删除角色权限关系表相应记录,这样操作是将角色下的权限删除,属于该角色的用户都将删除此权限。一个例子:用户A和用户B都是教学机构,他们都拥有“我的课程”权限,但是两个用户所查询到的数据是不一样的。细粒度授权涉及到不同的业务逻辑,通常在service层实现,根据不同的用户进行校验,根据不同的参数查询不同的数据或操作不同的数据。原创 2025-04-19 05:19:05 · 924 阅读 · 0 评论 -
[学成在线]15-微信扫码登录
前端引入微信官方提供的JS, 生成登录二维码用户扫码授权后, 微信会重定向到我们的URL(前端指定), 携带授权码我们拿到授权码, 调用微信服务申请令牌信息使用令牌获取用户信息拿到用户信息后, 我们把用户信息写入我们的数据库, 完成用户注册用户注册成功后, 我们返回一个重定向地址, 首页URL+用户名+登录类型(wx),前端拿到重定向地址, 进行重定向, 完成自动登录。原创 2025-04-17 10:07:05 · 1236 阅读 · 0 评论 -
[学成在线]14-用户认证
数据库中的密码加过密的,用户输入的密码是明文,我们需要修改密码格式器PasswordEncoder,原来使用的是NoOpPasswordEncoder,它是通过明文方式比较密码,现在我们修改为BCryptPasswordEncoder,它是将用户输入的密码编码为BCrypt格式与数据库中的密码进行比对。在认证阶段DaoAuthenticationProvider会调用UserDetailService查询用户的信息,这里是可以获取到齐全的用户信息的。这个key和图片一同返回给页面。原创 2025-04-14 10:14:31 · 961 阅读 · 0 评论 -
[学成在线]13-Spring Security入门
扫码登录的好处是用户不用输入账号和密码,操作简便,另外一个好处就是有利于用户信息的共享,互联网的优势就是资源共享,用户也是一种资源,对于一个新网站如果让用户去注册是很困难的,如果提供了微信扫码登录将省去用户注册的成本,是一种非常有效的推广手段。)方法,设置到其中。令牌采用JWT格式即可解决上边的问题,用户认证通过后会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。原创 2025-04-10 09:52:18 · 924 阅读 · 0 评论 -
[学成在线]12-课程搜索
搜索功能是一个系统的重要功能,是信息查询的方式。课程搜索是课程展示的渠道,用户通过课程搜索找到课程信息,进一步去查看课程的详细信息,进行选课、支付、学习。本项目的课程搜索支持全文检索技术,什么是全文检索?原创 2025-04-07 09:51:44 · 1307 阅读 · 0 评论 -
[学成在线]11-课程发布
现在的需求是课程发布操作后将数据写入数据库、redis、elasticsearch、MinIO四个地方,这四个地方已经不限制在一个数据库内,是由四个分散的服务去提供,与这四个服务去通信需要网络通信,而网络存在不可到达性,这种分布式系统环境下,通过与不同的服务进行网络通信去完成事务称之为。拿课程发布任务举例,执行课程发布任务是要向redis、索引库等同步数据,其它任务的执行逻辑是不同的,所以执行任务在sdk中不用实现任务逻辑,只需要提供一个抽象方法由具体的执行任务方去实现。原创 2025-04-04 15:46:02 · 1380 阅读 · 0 评论 -
[学成在线]10-课程审核
5、课程审核过后不管状态是通过还是不通过,教学机构可以再次修改课程并提交审核,此时课程状态为”已提交“。提交课程审核,将课程信息汇总后写入课程预发布表,课程预发布表记录了教学机构在某个时间点要发布的课程信息。课程审核后更新课程基本信息表的审核状态、课程预发布表的审核状态,并将审核结果写入课程审核记录。此时课程的审核状态为”已提交“。1、查询课程基本信息、课程营销信息、课程计划信息等课程相关信息,整合为课程预发布信息。6、课程审核通过,教学机构人员可以发布课程,发布成功后课程的发布状态为”已发布“。原创 2025-04-02 17:06:00 · 652 阅读 · 0 评论 -
[学成在线]09-课程预览
课程信息编辑完毕即可发布课程,发布课程相当于一个确认操作,课程发布后学习者在网站可以搜索到课程,然后查看课程的详细信息,进一步选课、支付、在线学习。下边是课程编辑与发布的整体流程:为了课程内容没有违规信息、课程内容安排合理,在课程发布之前运营方会进行课程审核,审核通过后课程方可发布。作为课程制作方即教学机构,在课程发布前通过课程预览功能可以看到课程发布后的效果,哪里的课程信息存在问题方便查看,及时修改。下图是课程预览的效果图,也是课程正式发布后的课程详情界面:原创 2025-03-31 11:03:21 · 1102 阅读 · 0 评论 -
[学成在线]08-课程绑定媒资
根据业务流程,用户进入课程计划列表,首先确定向哪个课程计划添加视频,点击”添加视频“后用户选择视频,选择视频,点击提交,前端以json格式请求以下参数: 提交媒资文件id、文件名称、教学计划id。原创 2025-03-28 10:31:48 · 565 阅读 · 0 评论 -
[学成在线]07-视频转码
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。官网:https://www.xuxueli.com/xxl-job/文档:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B。原创 2025-03-26 10:01:04 · 1011 阅读 · 0 评论 -
[学成在线]06-视频分片上传
需求背景通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成,需要客户重新上传,用户体验非常差,所以对于大文件上传的要求最基本的是断点续传。什么是断点续传。原创 2025-03-24 09:50:11 · 1378 阅读 · 0 评论 -
[学成在线]05-分布式文件系统
要理解分布式文件系统首先了解什么是文件系统。文件系统是负责管理和存储文件的系统软件,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文件。下图指示了文件系统所处的位置:常见的文件系统:FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4等。现在有个问题,一此短视频平台拥有大量的视频、图片,这些视频文件、图片文件该如何存储呢?如何存储可以满足互联网上海量用户的浏览。今天讲的分布式文件系统就是海量用户查阅海量文件的方案。原创 2025-03-14 10:42:45 · 1021 阅读 · 0 评论 -
[学成在线]04-课程计划管理
响应结果需要自定义模型类/*** @description 课程计划树型结构dto*/@Data@ToString//课程计划关联的媒资信息//子结点/*** @description 课程计划管理接口*/@Api(value = "课程计划管理接口",tags = "课程计划管理接口")@ApiOperation("查询课程计划树形结构")原创 2025-03-12 14:44:18 · 963 阅读 · 0 评论 -
[学成在线]03-课程内容管理2
前端请求后端接口传输参数,是在controller中校验还是在Service中校验?答案是都需要校验,只是分工不同。Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验,比如:是否是符合一定的日期格式,等。Service中要校验的是业务规则相关的内容,比如:课程已经审核通过所以提交失败。Service中根据业务规则去校验不方便写成通用代码,Controller中则可以将校验的代码写成通用代码。原创 2025-03-10 14:48:42 · 1170 阅读 · 0 评论 -
[学成在线]02-课程内容管理1
1.课程列表添加课程选择录播, 填写课程信息填写课程计划信息填写师资信息课程信息填写完毕, 先进行提交审核, 审核通过后可以发布课程内容管理模块的基础表涉及9张,如下:使用 PowerDesigner打开课程资料下的"数据库\模型\学成在线项目.sws”教学机构人员点击课程管理首先进入课程查询界面在课程进行列表查询页面输入查询条件查询课程信息当不输入查询条件时输入全部课程信息。输入查询条件查询符合条件的课程信息。约束:本教学机构查询本机构的课程信息。数据模型。原创 2025-03-07 10:01:22 · 1586 阅读 · 0 评论 -
[学成在线]01-项目环境搭建
适学人群需要提高项目开发经验, 并且具备Java web、MySQL、Mybatis、SpringBoot、SpringCloud 基础课程亮点业务流程完整、详细,深入讲解课程发布业务、视频处理业务、选课学习业务、订单支付业务、认证授权等业务流程。课程涵盖项目需求分析、设计、编码、调试、测试整个开发过程技术先进,当前热门的Spring Cloud Alibaba微服务技术栈,采用Nginx、MQ、Redis、Elasticsearch、MinIO、XXL-Job等中间件技术。原创 2025-03-05 11:08:39 · 856 阅读 · 0 评论 -
[瑞吉外卖]-10前后端分离
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。概念: 前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责。接口: API接口就是一个http的请求地址, 主要就是定义: 请求路径、请求方式、请求参数、响应数据等内容。YApi 是高效、易用、功能强大的 api 管理平台,旨在开发、产品、测试人员提供更优雅的接口管理服务。原创 2024-10-30 09:45:06 · 1036 阅读 · 0 评论 -
[瑞吉外卖]-09数据库优化
当前项目中, 数据库的读和写都由一台数据库承担,压力大, 数据库服务器磁盘损坏则数据丢失,造成单点故障MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySOL数据库(slave,即从库)从另一台MySOL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySOL数据库自带功能,无需借助第三方工具。master将改变记录到二进制日志(binary log)原创 2024-10-28 10:39:48 · 2020 阅读 · 0 评论 -
[瑞吉外卖]-08订单支付
在购物车中可以修改菜品和套餐的数量也可以清空购物车。移动端用户将菜品或者套餐加入购物车后,可以点击购物车中的 [去结算] 按钮, 页面跳转到订单确认页面, 点击[去支付] 按钮则完成下单操作。地址簿,指的是移动端消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。菜品查询: 之前根据分类id查询菜品, 返回的菜品数据中不包含口味数据, 现在需要加上, 因为前端需要展示。在开发代码之前,需要梳理一下用户下单操作时前端页面和服务端的交互过程。在开发业务功能前,先将需要用到的类和接口基本结构创建好。原创 2024-10-18 13:21:43 · 778 阅读 · 0 评论 -
[瑞吉外卖]-07验证码登录
目前市面上有很多第三方提供的短信服务,这些第三可方短信服务会和各个运营商(移动、联通、电信)对接,我们只需要注册成为会员并且按照提供的开发文档进行调用就以发送短信。需要说明的是,这些短信服务一般都是收费服务。常用短信服务阿里云华为云腾讯云京东梦网乐信阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信:国内验证短信秒级触达,到达率最高可达99%;原创 2024-10-16 13:13:49 · 860 阅读 · 0 评论 -
[瑞吉外卖]-06套餐模块
在套餐管理列表页面点击删除按钮,可以删除对应的套餐信息。也可以通过复选框选择多个套餐,点击批量删除按钮一次删除多个套餐。注意,对于状态为售卖中的套餐不能删除,需要先停售,然后才能删除。系统中的套餐数据很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。新增套餐,其实就是将套餐信息插入到setmeal表,还需要向setmeal dish表插入套餐和菜品关联数据。在开发代码之前,需要梳理一下删除套餐时前端页面和服务端的交互过程。套餐就是菜品的集合。原创 2024-10-15 10:14:18 · 787 阅读 · 0 评论 -
[瑞吉外卖]-05菜品模块
文件上传也称为upload,是指将本地图片、视频、音频等文件上传到服务器上, 可以供其他用户浏览或下载前端组件库提供了上传组件,但是底层原理还是基于form表单的文件上传。服务端要接收客户端上传的文件,通常都会使用Apache的两个组件: commons-fileupload 和 commons-ioSpring框架在spring-web包中对文件上传进行了封装,大大简化了服务端代码,我们只需要在Controller的方法中声明-个MultipartFile类型的参数即可接收上传的文件。原创 2024-10-14 09:31:16 · 1170 阅读 · 0 评论 -
[瑞吉外卖]-04分类模块
在分类管理列表页面点击修改按钮,弹出修改窗口,在修改窗口回显分类信息并进行修改,最后点击确定按钮完成修改操作, 回显前端已经处理好了, 只需要开发修改接口即可。系统中的分类很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。新增菜品分类和新增套餐分类请求的服务端地址和提交的json数据结构相同,所以服务端只需要提供一个方法统一处理即可。在分类管理列表页面,可以删除某个分类。后台系统中可以管理分类信息,分类包括两种类型,分别是菜品分类和套餐分类。原创 2024-10-12 11:12:18 · 1067 阅读 · 0 评论 -
[瑞吉外卖]03-员工模块
账号禁用的员工不能登录系统,启用后的员工可以正常登录。在员工管理列表页面点击编辑按钮,跳转到编辑页面,在编辑页面回显员工信息并进行修改,最后点击保存按钮完成编辑操作。通过测试, 发现员工账号的状态并没有被更新, 经过排查, 发现前端传递过来的id是失真的, 导致无法正确更新。后台系统中可以管理员工信息, 通过新增员工来添加后台系统用户, 点击[添加员工]按钮跳转到新增页面。当数据量比较大时, 一个页面展示所有数据会比较乱,不便于查看, 所以一般采用分页的形式展示数据。原创 2024-10-10 09:38:48 · 1478 阅读 · 0 评论 -
[瑞吉外卖]02-登录登出
前面已经完成了员工登录退出的功能, 由于没有登录校验, 当用户直接访问系统首页, 即便没有登录也可以访问,需求分析: 用户点击退出按钮, 发送退出请求, 后端清理Session中的用户id。返回结果类: 服务端相应的所有结果最终都会包装成该类型返回给前端页面。测试登录成功, 用户名错误, 密码错误, 用户禁用等多种情况。创建Controller, Service, Mapper。在controller层创建登录方法, 梳理登录逻辑。我们的需求是用户未登录的情况下让用户去往登录页。原创 2024-10-09 09:28:08 · 562 阅读 · 0 评论 -
[瑞吉外卖]01-项目搭建
本项目(瑞吉外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括系统管理后台和移动端应用两部分其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的菜品、套餐、订单等进行管理维护。移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。本项目共分为3期进行开发第一期主要实现基本需求,其中移动端应用通过H5实现,用户可以通过手机浏览器访问。第二期主要针对移动端应用进行改进,使用微信小程序实现,用户使用起来更加方便。第三期主要针对系统进行优化升级,提高系统的访问性能。原创 2024-10-08 09:28:23 · 966 阅读 · 0 评论 -
[苍穹外卖]-12Apache POI入门与实战
Apache POI是一个处理Office各种文件格式的开源项目, 我们可以使用POI在java程序中对Office的各种文件进行读写操作, 一般情况下, POI都是用于读写Excel文件。设计Excel模版文件, 以简化代码, 降低编码难度, 模版文件放在resources/template/运行数据报表模版.xlsx。接口设计: 该接口无需返回数据, 报表导出功能本质是文件下载, 服务端通过输出流将Excel文件下载到客户端浏览器即可。快速入门: 引入坐标, 编写测试方法, 写入和读取Excel文件。原创 2024-09-16 13:28:38 · 1098 阅读 · 0 评论 -
[苍穹外卖]-11数据可视化接口开发
入门案例: 使用Echarts, 前端关注图表的配置, 不同的配置影响展示的效果, 后端关注图表所需要的数据格式。设计VO: 根据接口的返回值, 设计TurnoverReportVO对象, 用于封装返回给前端的数据。设计VO: 根据接口的返回值, 设计VO实体类,用于封装返回给前端的数据。设计DTO: 设计GoodsSalesDTO用来封装单条的查询结果。设计VO: 根据接口返回的结果设计VO实体类。设计VO: 根据接口的返回结果设计VO实体类。原创 2024-09-14 14:01:28 · 1334 阅读 · 0 评论 -
[苍穹外卖]-10WebSocket入门与实战
WebSocket是基于TCP的一种新的网络协议, 实现了浏览器与服务器的全双工通信, 即一次握手,建立持久连接,双向数据传输。功能测试: 启动前端页面, 建立WebSocket连接, 服务端通过定时任务类定时给前端推送消息, 前端也可以给服务端发送消息。需求分析: 用户下单并且支付成功后, 需要在第一时间通知外卖商家, 通知的形式是 语音提醒 + 弹出提示框。需求分析: 用户在小程序中点击催单按钮后, 需要通知外卖商家, 通知形式是语音播报 + 弹出提示框。原创 2024-09-13 08:59:35 · 1098 阅读 · 0 评论 -
[苍穹外卖]-09Spring Task定时任务
用户收到货之后, 商家不点击完成按钮, 订单一直处于"派送中"状态, 如果不处理, 系统中就会存在大量无效订单。订单超时处理: 下单后未支付, 订单一直处于"待支付"状态, 如果不处理, 系统中就会存在大量的完不成的订单。在启动类中添加 @EnableScheduling注解 开启任务调度, 新建定时任务类, 编写定时任务方法。功能测试: 定时任务不能通过接口文档或者前端程序进行测试, 可以修改定时任务的触发时间进行测试。只要是需要定时处理的场景都可以使用Spring Task定时任务框架。原创 2024-09-12 09:04:46 · 412 阅读 · 0 评论 -
[苍穹外卖]-08微信支付详解
资质限制: 需要使用营业执照申请商户号, 个人账户无法开通支付权限, 有了商户号可以开通支付资质微信支付的接入流程: 在商户平台把商户号与AppId绑定后, 就可以使用appid和商户号进行支付微信小程序支付时序图重要步骤后端调用微信官方的预支付接口,拿到预支付订单,返给前端前端根据预支付订单发起微信支付微信服务器把支付结果返给后端, 后端更新支付状态预支付交易订单(JSAPI下单): 商户系统调用该接口在微信支付服务后台生成预支付交易单, 目的是获取预支付交易会话标识。原创 2024-09-11 09:00:45 · 1191 阅读 · 0 评论 -
[苍穹外卖]-07使用缓存优化查询接口
删除缓存: 在管理端的SetmealController的save,delet,update, startOrShtop等方法上添加 CacheEvict注解。问题说明: 用户端小程序展示的菜品数据都是通过查询数据库获得, 如果客户端访问量较大, 数据库访问访问压力增大,容易造成响应慢, 用户体验差。Spring Cache是一个框架, 实现了基于注解的缓存功能, 只要加上相应注解, 就能实现缓存功能。清理缓存数据: 新增菜品/修改菜品/批量删除菜品/起售停售菜品时, 要删除缓存数据, 保持数据一致性。原创 2024-09-10 09:03:10 · 1075 阅读 · 0 评论 -
[苍穹外卖]-06微信登录详解
HttpClient是Apache Jakarta Common下的子项目, 可以用来提供高效的, 最新的,功能丰富的支持HTTP协议的客户端编程工具包, 并且支持Http协议最新的版本和建议核心APIHttpClient: 请求对象HttpClients: 请求对象构造器CloseableHttpClient: 请求对象实现类HttpGet: 发送get请求HttpPost: 发送post请求请求步骤创建HttpClient对象创建Http请求对象。原创 2024-09-09 09:01:30 · 2324 阅读 · 0 评论