自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

。。。

人生最精彩的不是成功的那一瞬间,而是回头看,那段漆黑看似没有尽头的过程。

  • 博客(236)
  • 资源 (9)
  • 收藏
  • 关注

原创 想查看微信好友撤回的消息?Python帮你搞定

要说微信最让人恶心的发明,消息撤回绝对能上榜。比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...

2019-12-01 13:50:59 95541 203

原创 20行Python代码爬取王者荣耀全英雄皮肤

引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工作爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网:我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...

2019-11-21 22:01:03 239714 253

原创 从入门到精通,Java学习路线导航

引言最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。Java学习路线当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。基础阶段首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Ora...

2019-11-12 19:34:42 161799 832

原创 SpringBoot 中 AOP 实现接口限流

比如登录接口、短信验证码接口、支付接口,很容易被恶意请求刷爆(比如频繁调用发送短信、恶意登录试错),导致系统响应变慢、服务崩溃,甚至产生额外的费用(短信费、接口调用费)。举例:同样配置“1分钟内最多请求10次”,59秒请求10次后,61秒请求时,统计的是1-61秒内的请求次数(仍为10次),会被限流,避免临界问题。原理:将固定窗口拆分为多个小窗口(如 1分钟拆分为6个10秒小窗口),每次请求时,只统计“当前时间往前推1分钟”内的请求次数,超过阈值则限流。60秒后进入新窗口,请求次数重置,可再次请求。

2026-04-16 17:30:00 94

原创 SpringBoot 中 AOP 实现权限校验(角色/权限)

SpringBoot + AOP 实现权限校验,是企业项目中最优雅、最高效的方案,核心逻辑就是「注解标记 + AOP 拦截 + 上下文校验」,全程不侵入业务代码,可扩展性极强。而用 AOP 实现权限校验,只需一行自定义注解,就能完成接口的角色和权限控制,完全不侵入业务代码,干净、优雅、可扩展,是企业项目的标配方案。测试结论:所有场景均符合预期,权限校验生效,无权限时返回统一的 403 响应,超级管理员豁免机制正常,不影响核心业务逻辑。

2026-04-16 09:00:31 142

原创 SpringBoot 中 AOP 实现日志记录(操作日志)

这是本次实战的核心,创建切面类,定义切点(匹配带有 @OperationLogAnnotation 注解的方法)、通知(环绕通知,实现日志记录逻辑),完成日志的收集和处理。操作日志是项目必备功能:比如用户登录、接口调用、数据新增/修改/删除,都需要记录操作人、操作时间、操作内容、接口地址等信息,方便后续排查问题、审计追溯。说明:该注解有两个属性,module(操作模块)和 description(操作描述),在需要记录日志的接口方法上添加该注解,并填写对应属性即可。

2026-04-15 17:30:00 462

原创 AI4S:战略赋能与产业突围,中科曙光的产业链优势解析

在产业发展过程中,没有任何一家企业能够单独完成全产业链布局,中科曙光的优势在于,立足自身技术与工程积淀,以开放架构凝聚产业协同力量,以全栈自研筑牢技术根基,以超算智算融通匹配多元需求,成为AI4S产业落地的“赋能者”而非“垄断者”。中科曙光拥有30年大系统集成经验,主导全国80%的智算中心建设,承建超算互联网核心节点,从2025年12月发布scaleX万卡超集群,到2026年2月3万卡上线,再到4月6万卡集群投用,仅用不到半年时间就完成了从技术突破到规模化部署的跨越,展现了强大的工程化交付能力。

2026-04-15 09:38:19 427

原创 Spring AOP 核心概念:切面、通知、切点、织入

通俗来讲,AOP 就像「给代码“戴帽子”」:原有业务代码(比如用户登录、订单支付)是核心,我们不需要修改这些核心代码,只需要在代码执行的某个节点(比如执行前、执行后),动态添加一些通用功能(比如日志、权限校验)——这些通用功能就像“帽子”,戴在核心代码上,不影响核心逻辑,还能实现功能复用。学校的「教学活动」(比如上课、考试)是核心业务;切面就是「把切点和通知绑定在一起」,相当于「保安的工作安排」:明确“在哪个门口(切点),做什么工作(通知)”,是 AOP 的核心组件,将分散的增强逻辑和定位规则整合起来。

2026-04-15 09:00:41 402

原创 SpringBoot 依赖管理:BOM 与版本控制

简单来说,BOM 就像一个「版本字典」,里面定义了一系列依赖的兼容版本,你只需要引入这个 BOM,再引入相关依赖时,就不需要手动指定版本号——BOM 会自动帮你匹配最合适、最兼容的版本。手动指定版本号,改来改去还是不兼容……:引入 BOM 后,其管理的版本会作用于所有子依赖(比如引入 Web Starter,其依赖的 Spring 核心版本由 BOM 统一管控)。多个依赖之间有依赖关系(比如 MyBatis 依赖 Spring JDBC),手动管理时,容易漏引依赖、重复引入,或引入不兼容的版本。

2026-04-14 17:30:00 503

原创 SpringBoot 自动配置过滤:排除特定自动配置

SpringBoot “开箱即用” 依赖自动配置:引入 Starter 依赖(如 web、redis),启动时自动加载对应配置类、创建 Bean,无需手动配置。本文聚焦 SpringBoot 自动配置排除的核心知识点,涵盖基础认知、5种实战排除方式、高频场景、排错技巧及面试考点,精简冗余内容,保留实战与面试核心,复制可用、易懂好记。最后,如果你在实际开发中遇到过自动配置排除的奇葩问题,或者有更好的实战技巧,欢迎在评论区留言交流,一起避坑、一起进步!

2026-04-14 09:01:21 510

原创 SpringBoot 扩展点:ApplicationContextInitializer 与 ApplicationListener

在讲解具体扩展点之前,我们先明确“扩展点”的核心含义:SpringBoot 框架为了满足开发者的自定义需求,在启动流程、容器初始化、事件触发等关键节点,预留了一些“钩子方法”或“接口”,开发者只需实现这些接口、重写对应方法,就能在不修改框架源码的前提下,介入框架的执行流程,实现自定义逻辑——这些预留的接口,就是 SpringBoot 的扩展点。很多同学对这两个扩展点的认知比较模糊,甚至混淆两者的作用:有人觉得它们都是“监听启动事件”的,有人不知道什么时候该用哪个,还有人不清楚它们的执行时机和底层逻辑。

2026-04-13 17:30:00 497

原创 SpringBoot 应用启动流程:从启动到 Web 容器初始化

Spring 容器是何时初始化的?如果是 Web 应用(应用类型为 SERVLET 或 REACTIVE),上下文刷新完成后,会启动对应的 Web 容器(默认 Tomcat),并将 Web 应用部署到容器中,使其能够接收 HTTP 请求。:加载 Spring 内置的监听器(如监听启动事件、上下文刷新事件等),这些监听器会在启动流程的不同节点被触发,驱动后续操作(比如上一章讲的 ApplicationStartingEvent、ApplicationEnvironmentPreparedEvent 等)。

2026-04-13 09:00:28 531

原创 SpringBoot 事件机制:ApplicationEvent 与监听器

问题:核心的“用户注册”逻辑,与“通知、日志、积分”等非核心逻辑强耦合,后续要修改通知方式(如从短信改成邮件)、新增注册后逻辑(如绑定会员),都需要修改 UserService 代码,违反“开闭原则”,维护成本极高。日常开发中,无论是用户注册后的通知推送、订单支付后的后续处理,还是系统初始化、日志收集、监控告警,用事件机制都能让代码变得简洁、解耦、可扩展,还能轻松实现异步处理,避免阻塞主线程。它是 Spring 事件机制的“中间件”,负责接收发布者发布的事件,然后广播给所有监听该事件的监听器。

2026-04-12 17:30:00 533

原创 SpringBoot 环境配置解析:Environment 与 PropertySource

当读取配置时,Environment 会按列表顺序遍历 PropertySource,找到第一个包含目标 key 的配置源,返回对应的值(这就是配置优先级的底层逻辑)。Environment 是 Spring 提供的「环境抽象接口」,位于 org.springframework.core.env 包下,它的核心作用是“统一管理所有配置源,对外提供统一的配置读取 API”,屏蔽底层不同配置源的差异(比如 yml 和环境变量的读取方式不同,但通过 Environment 可以用同一方法读取)。

2026-04-12 09:04:21 339

原创 SpringBoot 配置绑定:@ConfigurationProperties

无论是日常开发,还是自定义 Starter、企业级项目封装,配置绑定都是绕不开的环节:小到数据库地址、Redis 端口,大到第三方 SDK 密钥、线程池参数、多环境配置切换,都需要通过配置绑定,将application.yml/properties 中的配置,优雅地注入到 Java 代码中。配置写错、漏配是线上常见隐患(如数据库密码写错、超时时间设为负数),@ConfigurationProperties 配合 JSR380 校验注解,能实现「启动时校验配置合法性」,不合法则启动失败,提前发现问题。

2026-04-11 17:30:00 595

原创 SpringBoot 自动配置类加载顺序与优先级

② 推荐使用 AutoConfiguration.imports 文件,替代 spring.factories 文件,用于注册自动配置类,加载机制更稳定,避免旧方式的兼容问题。我们知道,SpringBoot 自动配置用了 @ConditionalOnMissingBean 注解(用户没配我才配),但如果自定义配置比官方自动配置「后加载」,那么官方配置先执行,创建了默认 Bean,自定义配置再执行时,@ConditionalOnMissingBean 条件不满足,就无法覆盖,导致自定义配置失效。

2026-04-11 09:00:12 506

原创 SpringBoot 自定义 Starter:从零开发一个私有 Starter

用过 SpringBoot 的都知道,引入一个 starter(比如 spring-boot-starter-web、spring-boot-starter-redis),就能实现开箱即用,不用手动配置。答:SpringBoot 启动时,会通过 SpringFactoriesLoader 工具类,读取 classpath 下 META-INF/spring.factories 文件,该文件中配置了自动配置类的全类名,SpringBoot 会加载这些自动配置类,结合条件注解筛选后,注入对应的 Bean。

2026-04-10 17:30:00 527

原创 SpringBoot 条件注解:@Conditional 系列注解详解

如果用 @ConditionalOnBean 判断一个「还没被加载的 Bean」,会导致条件不满足,当前 Bean 无法创建。看到这里,你已经彻底掌握了 @Conditional 系列注解的底层逻辑、实战用法和面试考点——以后不管是排查 SpringBoot 配置不生效的问题,还是实现多场景适配,甚至是面试被追问,都能从容应对。组合条件的执行顺序:Spring 会按注解的声明顺序,依次判断每个条件,只要有一个条件不满足,就会直接跳过该配置类的加载,不会继续判断后续条件——这样能提升效率,避免无用的判断。

2026-04-10 09:00:27 648

原创 SpringBoot 自动配置原理深度解析:@EnableAutoConfiguration

有时候,我们引入了某个依赖,但不想让 SpringBoot 自动配置它(比如引入了 mybatis-spring-boot-starter,但想手动配置 MyBatis,或者项目中不需要数据源自动配置),这时候就可以通过 @EnableAutoConfiguration 的 exclude 属性,关闭指定的自动配置类。其实自动配置的本质,就是 SpringBoot 开发团队帮我们做了「重复、繁琐的配置工作」,把常用组件的配置提前写好,通过条件注解实现按需加载,让我们不用关注底层配置,专注于业务逻辑开发。

2026-04-09 17:30:00 618

原创 SpringBoot 调试技巧:断点、日志、 Arthas 在线诊断

线上项目出问题,不能重启、不能改代码、不能停服务,用 Arthas 直接“穿透”运行中的项目,排查问题。它是阿里开源的 Java 在线诊断工具,不用复杂配置,下载就能用,堪称线上调试“救星”。「异常断点」:直接捕获程序抛出的异常,自动定位报错行,不用手动找异常位置。

2026-04-09 09:01:38 532

原创 SpringBoot 代码覆盖率统计:JaCoCo 配置与使用

这时候就需要「代码覆盖率统计工具」来帮我们把关——而 JaCoCo(Java Code Coverage)就是 SpringBoot 项目中最常用、最易用的覆盖率统计工具,无需复杂配置,就能快速统计出测试用例对代码的覆盖情况,帮我们补全测试漏洞,提升代码质量。掌握 JaCoCo 的使用,能让你的测试用例更完整,代码更健壮,避免上线后因测试遗漏导致的 Bug。这是最核心的区域,能精准看到该类中每一行代码的覆盖情况,红色标注的代码就是未被测试覆盖的部分,可直接定位到需要补充测试用例的地方。

2026-04-08 17:30:00 512

原创 SpringBoot 集成测试:@SpringBootTest 与 MockMvc

SpringBootTest 本质是一个「上下文启动器」,它会扫描项目中的 @SpringBootApplication 启动类,加载所有配置(application.yml/properties、配置类、Bean 定义),创建一个完整的 Spring 应用上下文,让测试类能像真实运行环境一样,注入所有 Bean(Service、Mapper、Controller 等)。上面的示例中,我们手动插入和删除测试数据,虽然能实现隔离,但比较繁琐。→ 原因:加载了完整上下文,若项目较大,启动时间会很长。

2026-04-08 09:01:01 529

原创 SpringBoot 邮件发送:文本邮件与 HTML 邮件

发送邮件前,必须开启发件人邮箱的 SMTP 服务,并获取「授权码」—— 授权码是第三方应用(如 SpringBoot 项目)访问邮箱的专用密钥,不同于邮箱登录密码,目的是保障邮箱账号安全,防止密码泄露。• HTML 富文本邮件:适用于用户交互类场景(如注册验证码、密码找回、订单通知、活动营销),支持文字样式、图片、链接、表格等,提升用户体验,是实际开发中最常用的邮件类型。:复杂邮件的辅助工具类,简化 HTML 邮件、带附件邮件、多收件人(抄送/密送)等场景的配置,解决中文乱码、样式解析等常见问题。

2026-04-07 17:30:00 615

原创 SpringBoot 定时任务:@Scheduled 基础与动态定时

属于刚需基础组件:订单超时自动关单、优惠券定时失效、日志/垃圾文件定时清理、统计报表凌晨生成、缓存定时刷新、分布式数据同步……SpringBoot 自带的定时任务方案开箱即用,无需引入中间件(如 Quartz、XXL-Job),轻量化、无依赖。四、异步 + 定时(@Async + @Scheduled)。• 每日凌晨:2:00 清理 7 天前日志、生成日账单。• 支持秒级复杂规则:每天、每周、每月、指定时分秒。记录任务开始/结束时间、耗时、异常信息,方便排查。• 周期巡检:定时检查服务器状态、接口健康度。

2026-04-07 09:01:53 670

原创 SpringBoot 文件上传与下载(本地存储 + MinIO 分布式存储)

MinIO分布式存储方案主打“高可用、可扩容、企业级”,兼容S3协议,支持分片上传、断点续传和权限控制,完美适配微服务集群、大文件存储等企业级场景,可避免后期项目扩容的重构成本。1. 分布式架构,支持集群部署,高可用、可扩容;封装MinIO的文件上传(单文件、多文件、分片上传)、下载、预览、删除、创建存储桶等方法,适配企业级场景,包含异常处理、权限控制。编写MinIO相关接口,包含单文件、多文件、大文件分片上传,以及下载、预览、删除、批量删除等功能,接口规范,适配前端调用。2. 开发速度快,调试方便;

2026-04-06 17:30:00 511

原创 SpringBoot 静态资源访问(图片/JS/CSS)配置详解

图片上传成功但访问 404、JS/CSS 加载失败、自定义目录不生效、线上环境无法访问。大家在开发中有没有遇到过静态资源 404、图片无法访问的问题?默认规则、自定义配置、本地映射、外部路径、权限放行、打包部署。是前端页面、图片上传、富文本、后台管理系统必备的功能。二、SpringBoot 默认静态资源规则(自动生效)七、SpringBoot 静态资源缓存(生产优化)• 图片:jpg、png、gif、webp。• 静态页面:html、ico、font。• 上传文件:Excel、PDF、视频。

2026-04-06 09:01:18 673

原创 SpringBoot 多模块项目搭建:service/dao/web分层设计

在实际企业开发中,简单的单模块 SpringBoot 项目只能用来快速 Dem)o 或小型应用,一旦业务复杂、团队人数变多、需求迭代加快,单模块就会暴露出。关注我,持续更新 SpringBoot 企业级实战教程,从工程搭建到微服务、高并发、分布式架构,带你一步步成长为后端大牛!只要按照这套结构搭建项目,你的工程规范度、可维护性、可扩展性都会直接达到企业级标准。,正是解决这些问题的标准方案。代码混乱、职责不清、难以维护、编译打包慢、不利于后期微服务拆分。职责清晰、分层解耦、易于维护、易于扩展、便于团队协作。

2026-04-05 17:30:00 648

原创 SpringBoot 整合 Elasticsearch 实现全文检索

这一篇从零带你整合 SpringBoot + ES,从环境搭建、分词配置、CRUD、高亮查询、分页、聚合、到真实业务场景。它天生支持分布式、PB 级数据、毫秒级响应、强大的分词与聚合能力,是目前后端全文检索的标配方案。• 支持自定义扩展词库(如:Java、SpringBoot、云原生)高亮、多条件、分页、排序、模糊、范围、must/should 组合。模糊搜索、关键词高亮、分词检索、热搜推荐、商品搜索、文章全文检索。遇到过分词、同步、性能问题吗?• 复杂高亮、多条件、聚合用 RestTemplate。

2026-04-05 09:00:38 698

原创 SpringBoot 整合 MongoDB

它结构灵活、开发极快,特别适合文章、评论、日志、用户行为等场景。掌握 CRUD、条件查询、分页、更新、索引,基本能覆盖 90% 的业务开发。,以类似 JSON 的 BSON 格式存储数据,结构灵活、无需预定义表结构、支持复杂查询、横向扩展方便,非常适合存储。• MongoDB 客户端工具(Navicat、Mongo Compass 等)• MongoDB:结构灵活、无表结构约束、查询快、适合海量半结构化数据。• MySQL:表结构固定、事务强、适合强一致性业务。• 文章、博客、评论、日志类数据(字段多变)

2026-04-04 17:30:00 451

原创 SpringBoot 缓存注解:@Cacheable/@CacheEvict 使用

在 SpringBoot 里做缓存,除了手动操作 RedisTem)plate,更优雅、更常用的方式就是。不用写重复的缓存逻辑,只需要在方法上加个注解,就能自动实现缓存读写,代码干净又好维护。• 适配多种缓存:Redis、Caffeine、内存缓存都支持。列表缓存容易占内存,建议设置更短过期时间 + 分页缓存。• 统一管理:过期时间、缓存名称、key 规则集中配置。四、核心注解 2:@CacheEvict(删除缓存)数据更新/删除后,清理旧缓存,保证数据一致。建议事务提交后再清缓存,否则会出现“脏缓存”。

2026-04-04 09:00:13 554

原创 SpringBoot 整合 Redis 缓存

把高频查询数据(如用户信息、商品列表)缓存到 Redis,避免每次请求都查数据库,接口响应速度从毫秒级提升到微秒级;:用户信息、商品信息等对象缓存,无需修改整个对象,可单独修改某个字段(如用户昵称、商品库存),节省内存和带宽。:消息队列(简单场景)、最新列表、历史记录(如浏览记录、消息列表),支持从头部、尾部插入/删除数据。:除了缓存,还能实现分布式锁、计数器、限流、消息队列(简单场景)、排行榜等功能;:用户信息、验证码、令牌、单个数值(如计数器),是最基础、最常用的类型。

2026-04-03 17:30:00 383

原创 SpringBoot 数据库连接池配置(HikariCP)最佳实践

在 SpringBoot 里,数据库连接池早就不是可选项,从 2.x 版本开始,SpringBoot 已经把。MyBatis / MyBatis-Plus 同样自动走 Hikari 连接池,建议与 maximum-pool-size 相同,关闭“收缩机制”,更稳定。设为默认连接池,它以“极快、轻量、稳定”著称,也是目前线上最主流的选择。• 开启 leak-detection-threshold 监控。• 性能吊打 C3P0、DBCP2、Tomcat-JDBC。• Druid:功能强、监控全、较重。

2026-04-03 09:00:24 329

原创 SpringBoot 多数据源配置(读写分离基础)

掌握这一套,你就理解了读写分离的底层原理,再去用 Sharding-JDBC、dynamic-datasource 这类框架会非常轻松。:主库、从库读,减轻单库压力。随着项目变大,单数据扛不住压力很常见的事,这时候一般会先做。这样不同包下的 Mapper 会自动走不同数据源,实现。5. 事务注意:多数据源下跨库事务需要额外处理。• 主库写入、从库读取(读写分离基础版)五、手动配置主数据源(Master)六、手动配置从数据源(Slave)七、项目结构划分(按包区分数据源)

2026-04-02 17:30:00 290

原创 SpringBoot 整合 JPA / Hibernate 快速上手

不用写 XML、不用写 SQL,甚至连简单的增删改查都不用自己敲,只需要定义接口,就能直接完成数据操作,非常适合快速开发、单表为主的业务场景。本篇文章就从零带你整合 SpringBoot + JPA(底层 Hibernate),从依赖、自动建表、CRUD、分页、复杂查询到事务。不用 XML、不用重复 CRUD、自动建表,开发效率直接拉满,非常适合快速迭代和轻量业务。十、JPA、MyBatis、JdbcTemplate 怎么选?:字段约束(非空、唯一、长度等)九、自定义 SQL(复杂查询)

2026-04-02 09:00:33 381

原创 SpringBoot 整合 JdbcTemplate 快速开发数据访问层

很多人一提到 SpringBoot 操作数据库,就只想到 MyBatis、JPA,其实在很多简单业务、小工具项目、后台管理模块里,根本没必要上重型框架。没有配置、没有 XML、没有学习成本,非常适合小项目、快速开发场景,也是 Spring 生态最原生的数据访问方式。,没有复杂配置、没有 XML、没有各种插件,几行代码就能完成增删改查,非常适合快速开发。JdbcTemplate 才是轻量、简单、开箱即用的神器。,自动装配,直接写 SQL 就能完成所有操作。一、JdbcTemplate 适合什么场景?

2026-04-01 17:30:00 545

原创 SpringBoot 整合 MyBatis 完整实战

SpringBoot + MyBatis 可以说是国内后端开发最经典、最常用的组合了。包含:MyBatis启动器、MySQL驱动、分页插件、Lombok、连接池。• 返回 PageInfo 包含:总条数、总页数、当前页、数据列表。八、Service 层(业务逻辑 + 事务)3. 实体类、Mapper接口、XML映射。包含:CRUD + 多条件查询 + 分页。6. 分页查询(PageHelper)• 灵活可控,SQL 可优化、可维护。• 适合复杂查询、多表关联、统计报表。

2026-04-01 09:00:30 346

原创 SpringBoot Web 模块核心组件:从 DispatcherServlet 讲起

简单说:DispatcherServlet 的核心作用,就是“接收所有 HTTP 请求,然后分发给对应的组件处理,最后把处理结果返回给前端”。它不做具体的业务逻辑,只负责“调度”,就像一个项目经理,接收需求(请求),分配给对应开发(组件),最后交付成果(响应)。很多同学会把 DispatcherServlet 和普通的 Servlet 搞混,其实它本质上是 Servlet 的子类,是 SpringMVC 提供的核心调度器,也是 SpringBoot Web 模块的入口。

2026-03-31 17:30:00 610

原创 SpringBoot 接口测试:Postman 与 JUnit 5 实战

Postman适合手动联调,但项目上线后,每次迭代都要手动测试一遍所有接口,效率太低,这时候就需要用JUnit5做自动化测试,一次编写,反复使用。做后端开发,接口测试是绕不开的环节,既要保证接口能正常运行,又要应对前后端联调、线上稳定,所以今天就结合实际开发场景,来讲讲接口测试的方法。如果有多个接口需要测试,不用一个个点,直接用“集合批量运行”,勾选需要测试的接口,一键运行,还能导出测试报告,方便跟前端同步联调进度。这样的格式,切换环境时,不用改接口地址,直接切换环境即可,避免重复修改。

2026-03-31 09:00:31 519

原创 SpringBoot 统一返回数据处理:消息转换器与格式化

自定义 MappingJackson2HttpMessageConverter,接管全局JSON格式化。,不用每个接口手动 return Result.success()三、第一步:全局 JSON 格式化配置(日期、Long、Null):全局自动包装Result,Controller 零入侵。如需把 null 转空字符串,可自定义序列化器。:统一JSON格式化(日期、Long、Null)四、第二步:全局统一包装 Result。五、第三步:Null 值全局统一格式化。六、第四步:异常也统一(配合全局异常)

2026-03-30 17:30:00 304

原创 SpringBoot AOP 入门:日志、事务、权限的切面编程

的前提下,统一给方法添加功能:日志、事务、权限校验、性能监控、防重复提交……企业必备:日志、权限、事务、监控、限流全靠 AOP。如果每个方法都写一遍,代码爆炸、冗余、难维护。本篇文章就来讲讲 AOP,再带你实现。七、AOP + 事务(自动管理事务)AOP = 不修改代码,统一增强方法。八、AOP 自定义注解实现权限校验。一、什么是 AOP?AOP 统一写一次,全局生效。2. 为什么要用 AOP?:要加的功能(日志、权限)五、最简单的 AOP 日志。方法名、参数、返回值、耗时。2. AOP 切面校验权限。

2026-03-30 09:00:26 306

Python微信防撤回小程序

当你用微信和对方聊天时,对方突然撤回了几条消息,你会好奇吗?你会很想知道对方撤回了什么吗? Python实现的微信防撤回小程序,让你轻松获取对方撤回的消息内容

2019-11-28

第三方jar包

该压缩包提供了一系列的jar包,如okhttp,achartengine,volley,okio,MPAndroidChart

2018-11-07

颜色拾取器&&测量尺

颜色拾取器,无需安装,双击即可运行,想要哪里的颜色只需将鼠标拖动到相应位置即可。测量尺可以准确测量控件的宽和高

2018-11-07

ssm整合项目.zip

本项目采用Spring + SpringMVC + MyBatis框架进行整合开发,并严格进行分层,是入门学习框架整合的好案例

2020-08-19

BeanUtils开发包

BeanUtils是Apache Commons组件的成员之一,主要用于简化JavaBean封装数据的操作。

2019-04-16

揭秘数据结构之双链表(源代码)

揭秘数据结构之双链表文章所讲程序的源代码

2019-11-06

wechat.zip

【除夕夜特辑】手把手教你微信公众号开发 文章源代码,详细介绍了微信公众号开发的一些功能,比如:接收消息、回复消息、自定义菜单、模板消息、二维码等等。

2020-01-24

玩转单链表——源代码

玩转单链表——文章中所讲述的程序源代码

2019-11-05

OptimizeDemo.zip

关于百度地图SDK开发的小Demo,和博客同步

2019-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除