- 博客(100)
- 收藏
- 关注
原创 数据统计模块后端架构解析:从Controller到SQL的ECharts数据对接实践
本文介绍了基于SpringBoot+MyBatis+MySQL技术栈实现的餐饮系统数据统计模块,重点阐述了四个核心接口的设计与实现:1)营业额统计接口通过聚合查询计算每日营收;2)用户统计接口同步计算新增与累计用户数;3)订单统计接口实现总订单量与完成率分析;4)销量TOP10接口通过SQL聚合获取热销商品排行。各接口均采用日期范围过滤,处理空数据情况,并将结果封装为适合ECharts图表展示的VO对象,为运营决策提供数据支撑。系统通过精确的时间范围控制和分层架构设计,确保了数据统计的准确性和可视化展示的便
2025-07-18 21:31:20
872
原创 SpringBoot订单模块核心接口设计与实现
本文详细介绍了基于SpringBoot的订单模块设计与实现,涵盖管理端和用户端核心功能。管理端包括订单搜索、状态统计、详情查询及状态流转操作(接单/拒单/派送/完成/取消);用户端实现下单、支付、历史订单查询、取消订单、再来一单和催单功能。采用分层架构(Controller-Service-Mapper)和MyBatis动态SQL,重点解析了分页查询、状态机转换、事务管理等关键技术。系统通过DTO/VO隔离数据层,严格校验订单状态,并支持WebSocket实时通知。注意事项包括幂等性处理、数据脱敏和操作日志
2025-07-09 00:16:04
671
原创 WebSocket 与 HTTP 的区别及 Spring Boot 实战应用
通过 Spring Boot 的简洁实现,WebSocket 为现代 Web 应用提供了真正的实时双向通信能力,完美解决了 HTTP 协议在实时交互场景中的局限性。:在 1000 并发连接下,WebSocket 比 HTTP 长轮询节省 95% 的带宽,降低 80% 的延迟(数据来源:WebSocket.org 基准测试):WebSocket 通过一次 HTTP 握手升级为全双工 TCP 连接,实现服务端主动推送能力,突破 HTTP 单向通信的限制。
2025-06-26 21:17:17
600
原创 Spring Task定时任务详解与实战应用
SpringTask是Spring框架内置的轻量级定时任务模块,通过@EnableScheduling和@Scheduled注解即可实现任务调度。支持cron表达式、固定间隔(fixedDelay/fixedRate)和延迟(initialDelay)三种触发方式,其中cron表达式采用6位标准格式。典型应用场景包括订单超时处理(每分钟检查未支付订单)、配送自动完成(凌晨批量处理)等。最佳实践建议配置专用线程池(默认单线程),分布式环境配合Redis锁使用,并做好异常处理。适合单机常规调度需求,复杂场景建议
2025-06-26 20:53:46
319
原创 为什么修改数据前要先查询?揭秘企业级应用的安全基石
摘要:文章通过套餐启停功能案例,揭示了前端额外请求查询接口的必要性。核心观点包括:1)安全防护三重机制(数据防伪、状态校验、操作审计);2)性能优化方案(短时缓存、批量查询);3)不同场景下的架构选择建议。提出"修改前查询应作为默认选项"的黄金法则,强调用少量网络开销换取数据完整性保障。文章指出大厂设计遵循"不信任原则"和"显式优于隐式"理念,这种看似低效的模式实为企业级应用的安全基石。正如安全专家所言:"安全不是功能,而是系统属性&qu
2025-06-12 22:54:57
840
原创 Spring缓存注解的陷阱:为什么@CacheEvict删不掉Redis缓存?
失效问题本质是事务边界与资源生命周期的错配。通过本文的四步解决方案:使用调整执行顺序优化连接池配置防止过早断开添加重试机制增强可靠性确保键序列化一致性开发者可以彻底解决这一典型问题。更深层次上,这提醒我们在分布式系统中,任何跨越资源边界的操作都需要显式的生命周期管理,框架的便利性不能替代对底层机制的理解。缓存的世界里,删除比创建更需要智慧——因为系统最脆弱的时刻,往往发生在你试图抹去痕迹的瞬间。
2025-06-08 23:23:41
1040
原创 深入理解 Spring Cache 及其核心注解
SpringCache是缓存抽象规范,支持多种缓存技术,通过注解自动处理缓存操作。核心注解包括:@EnableCaching用于启用缓存;@Cacheable优先从缓存查询;@CachePut更新缓存数据;@CacheEvict删除缓存数据。这些注解通过简单配置即可实现缓存功能,减少数据库访问,提升系统性能,并保持缓存一致性。开发者可根据业务需求灵活选用,实现高效缓存管理。
2025-06-08 23:08:10
657
原创 Redis 缓存策略:借助缓存优化数据库性能并保障数据一致性
本文介绍了缓存加载策略与一致性维护方案。采用"业务类型_关联ID"格式设计缓存Key,优先从Redis读取,未命中时数据库查询并缓存。数据变更时主动清理缓存,包括新增、修改、状态变更和批量删除场景。提出了优化方向:精准删除代替全量清理,避免缓存穿透和雪崩。该策略有效提升高并发读场景性能,适用于电商、餐饮等业务,同时需注意监控、灰度发布等实践要点。
2025-06-05 22:18:05
1075
原创 微信小程序用户登录认证与注册服务实现
本文介绍了微信小程序用户登录认证的实现流程,主要包含三个核心环节:1)前端获取微信临时登录凭证code;2)后端通过调用微信接口验证code并获取用户openid;3)系统自动完成用户注册/登录操作并返回JWT令牌。关键技术实现包括:微信接口调用获取用户唯一标识、用户数据自动注册机制、基于JWT的身份验证令牌生成等。整个流程采用分层架构设计,通过Controller接收请求、Service处理业务逻辑,最终返回包含用户ID和认证令牌的响应数据。
2025-06-05 21:14:31
336
原创 微信小程序
这些文件类型共同构成了微信小程序的开发框架,分别负责逻辑、数据、结构和样式,分工明确且协同工作。一个变量 需要现在js内定义 js内可以定义变量,和函数实现。使用{{}}可以动态绑定。使用变量时需要先定义。
2025-05-02 21:36:23
2104
原创 HttpClient
HttpClient 是用于发送 HTTP 请求和处理响应的工具包,在不同的编程语言中都有对应的实现,下面为你分别介绍 Java 和 Python 中的 HttpClient。
2025-04-20 23:58:03
369
原创 前端用户列表与后端分页协同设计
这里将Page对象转换为自定义的PageResult简化响应结构:只返回前端需要的字段统一格式:保持API响应的一致性数据脱敏:有机会对敏感字段进行处理。
2025-04-08 19:56:37
529
原创 通过枚举、AOP、注解、反射填充公共字段
优化方案1. 使用 AOP(面向切面编程) 在数据持久化前,自动注入 `create_time`、`update_time` 等字段。 示例(Spring + AOP)
2025-04-05 20:10:36
376
原创 苍穹外卖上半部分总结
前端是请求到nginx服务器,再由nginx服务器转发到后端nginx的好处1.提高访问速度,当这条数据相同,不必要到后端去处理了,之间有nginx服务器返回数据,nginx就相当于一个缓存,redis2.进行负载均衡 ,后端可能有多个服务器,访问一个服务器,会导致服务器压力大,就由nginx把请求均匀分配给多个服务器3.保证后端服务安全,直接把后端url暴露,是不安全的行为。让前端访问nginx服务器,不暴露后端niginx配置负债均衡配置负债均衡策略配置文件。
2024-09-23 22:20:20
957
原创 Redis
Redis 是一个功能强大的工具,适用于多种不同的应用场景。它的高性能和丰富的数据结构使其成为开发人员在构建需要快速访问和处理大量数据的应用时的首选。不过,由于它将数据保存在内存中,需要考虑内存成本和数据持久化策略。
2024-09-11 13:29:51
1101
原创 在线音乐播放器项目
前端 js html css 三剑客后端 Spring Boot框架 插件有:Spring Boot DevTools、Lombok、Spring Web、MySQL Driver、MyBatis Framework、security、detect数据库有 三张表 lovemusic、music、user。
2024-09-03 11:20:11
1427
原创 在线博客项目
登录页面注册页面主页博客编写页面个人设置页面查看详情页面修改页面Spring Boot版本号3.2.6插件有Spring Boot DevTools、Lombok、Spring Web、MySQL Driver、MyBatis Framework项目目录前端文件都存放在static内所需要和数据库相匹配的三个类文章类用户类评论类。
2024-09-03 11:06:02
781
原创 Spring AOP
OOP 面向对象编程 AOP 面向切面编程主要为解耦而生AOP的组成切面、连接点、切点、通知1.切面:定义AOP业务类型 当前AOP是干嘛得2.连接点: 调用AOP得地方叫做一个连接点3.切点: 定义AOP拦截规则4.通知:定义什么时候干什么事情4.1 前置通知:拦截得目标方法之前执行的通知4.2 后置通知:拦截得目标方法之后的通知4.3 返回之后通知: 拦截的目标方法返回数据之后通知4.4 抛出异常之后的通知:拦截的目标方法抛出异常之后执行的通知。
2024-06-03 21:36:10
802
原创 Spring MVC/Web
Spring Web MVC是基于Servlet API构建的原始Web框架,也是Spring框架的一部分。它提供了灵活可扩展的MVC架构,方便开发者构建高性能的Web应用程序,并与 Spring 生态系统无缝集成。
2024-05-20 19:56:19
1075
原创 Spring Boot日志
为什么使用slf4j?:依赖于特定的日志类库可能会导致需要不同的配置,并且在维护时可能会遇到更多的麻烦。:SLF4J支持多种日志实现,包括log4j、logback和java.util.logging等。这意味着开发者可以根据项目的具体需求选择最合适的日志实现。
2024-05-15 18:06:32
292
原创 创建Spring Boot项目
2.如果是专业版,一般创建项目时就自带了,如果没有,也是去插件那,启动Spring Boot。1.如果是社区版的,到设置下的插件下 下载Spring Boot Helper。现在Spring Boot已经不支持java8了,最低也是java17。Spring Boot DevTools 是热部署的作用。选择好自己的配置,获取代码后,会有一个压缩包。解压之后,在IDE内打开,也是同样的效果。切换阿里巴巴源后,就可以使用java8。如果想用java8,那么就换国内源。spring源的兼容性会更好。
2024-05-13 14:46:14
369
原创 创建Spring项目
选择Maven Archetype,之后再Archetype选择webapp。在WEB-INF内文件下的webapp的web.xml文件内写入以下代码。打开对应的路径,用vscode打开settings.xml。若jar包出现问题,可在repostitory文件内全删除。之后在main内创建带有蓝色的java文件。之后在Maven刷新即可重新下载。若没有此文件可上网查找。这个是以后都默认勾上。
2024-04-26 19:28:45
377
原创 博客网站/部署服务器---继上篇前端页面接入后端
目录准备工作创建用户类博客类与连接数据库创建博客类创建用户类创建连接数据库工具类实现对数据库数据博客的操作实现对数据库用户的操作创建数据库语句登录页面前端后端博客列表前端注销登录写入数据判断用户是否登录替换页面用户昵称后端处理注销登录 LogoutServlet/doGet处理获取所有博客 BlogServlet/doGet处理判断用户是否登录 loginServlet/doGet处理替换页面用户昵称 UserinfoServlet/doGet博客详情页前端注销登录查询博客判断用户是否登录将博客详情页昵称替
2024-04-21 13:50:27
953
原创 Servlet实现常用功能及其他方法
之后在另一个页面,获取session中的用户名,再把计数器也取出,计数器++,并且两个打印,计数器更新后,再把更新后的计数器写入session。当页面刷新时,前端构造get方法,把数据构造成json格式,发送给后端,后端从数据库读取数据,再构造成json格式,发送给前端。当刷新页面时,会触发get请求,服务器会把数据回传给页面,页面会把数据继续显示到页面上,所以数据会依据存在。前端构造post方法,把数据构造成json格式,发送给后端,后端解析json格式,存储到数据库。读取从客户端传来的json数据。
2024-04-14 23:13:02
875
原创 Servlet测试1
测试1只需要知道客户端是如何发起请求的,服务器如何响应数据的即可。通过按钮提交get,post请求,并且后端响应数据,显示到前端。之后前端就从body内读取数据,写入,显示到页面上。后端接收到Post请求后,把数据写入到body内。后端接收到Get请求后,把数据写入到body内。
2024-04-14 00:18:32
449
原创 Servlet
Servlet 是 Java Servlet API 规范的一部分,Java Servlet API 是一个独立于平台的接口和协议,用于扩展服务器功能的 Java 技术。4.销毁:服务器调用 Servlet 的 destroy 方法,销毁 Servlet。2.初始化:服务器调用 Servlet 的 init 方法,初始化 Servlet。3.服务:服务器处理客户端的请求,调用 Servlet 的 service 方法。2.每次收到请求时,调用servlet,servlet内部调用对应的方法。
2024-04-11 13:40:38
630
原创 Maven创建项目
在pom.xml内,在project标签里打个dependencies标签,之后在这个标签里粘贴进去。复制到D:\Tomcat\apache-tomcat-8.5.100\webapps。但实际 每改代码就需要打包,部署,实在麻烦,所以我们可以直接使用插件解决。war包在D:\Servlet\MavenDemo1\target。tomcat加载一个程序时,就会先读取这个.xml文件。把war包复制到webapps文件内。往web.xml文件内添加代码。然后复制maven的标签代码。
2024-04-11 13:24:30
637
原创 博客页面---前端
这里需要放入editor.md,和JS文件的jquery.min.js的依赖,放入文章编辑的库。右侧文章只要这个页面有,所以css是单独出来的。里面包含多个css文件。
2024-03-31 21:58:44
568
原创 javaScript
JavaScript是一种高级的、解释型的编程语言。它是Web开发的核心技术之一,几乎所有的现代网页都使用JavaScript来添加交互性。JavaScript最初由Netscape公司的Brendan Eich在1995年创建,并迅速成为网页浏览器的标准编程语言。
2024-03-25 22:21:47
951
原创 赎金信..
再对ransomNote字符串进行统计,如果magazine里的某个字母不足以支撑ransomNote里的某个字母,就返回false,如果都足以支撑就返回true。用整形数组映射26个字母 当出现就在对应位置++,统计magazine的每个字母次数。HashMap不能用基本数据类型,而得用引用类型。用HashMap映射。原始类型 封装类。
2024-03-22 13:16:44
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人