- 博客(241)
- 资源 (6)
- 收藏
- 关注
原创 L05_后端_MinIO 安装使用入门指南(实战版)
本文介绍了MinIO对象存储的安装部署与Spring Boot集成方法。主要内容包括:1) 通过Docker或本地方式安装MinIO服务器(推荐Docker跨平台方案);2) 使用Web管理界面创建存储桶、设置访问规则并上传文件;3) 在Spring Boot项目中集成MinIO客户端,实现文件上传和删除接口。文章提供了详细的命令和代码示例,特别强调Docker部署的简便性(仅需一行命令)和实际开发中的注意事项(如端口配置、访问权限等)。该指南适合需要快速搭建轻量级对象存储服务的开发者参考。
2025-10-13 21:53:22
459
原创 后端_Redis 分布式锁实现指南
Redis分布式锁实践指南 本文介绍了基于Redis的分布式锁实现方案,重点讲解了Redisson和Lock4j两种框架的使用方式。主要内容包括: 核心原理:通过Redis原子命令实现加锁(SET NX EX)和解锁(Lua脚本),确保跨节点互斥和防死锁。 技术选型: Redisson:支持多种锁类型(可重入锁、公平锁、读写锁等),适合复杂场景 Lock4j:基于注解的声明式锁,简单易用 Redisson编程式锁实践: 环境配置:引入starter依赖,复用Redis连接 提供支付通知防重复处理案例,展示加
2025-10-08 22:16:36
1082
原创 后端_基于注解实现的请求限流
摘要: 本文介绍声明式请求限流技术,通过@RateLimiter注解实现高并发场景下的流量控制。核心原理采用AOP切面拦截请求,结合Redis计数器判断是否超限,支持全局、用户、IP等多维度限流。注解参数可配置时间窗口、请求上限及限流维度,并提供5种解析器满足不同场景需求。实战案例演示全局限流、用户/IP级限流及自定义维度的实现方式,超限时返回429错误。关键代码包括AOP切面逻辑和Redis计数操作,实现无侵入式的精准流量管控。
2025-10-08 22:15:28
662
原创 后端_异常处理:4 个代码片段,让前端永远拿到“同一句话”
摘要 本文展示了如何通过统一异常处理确保前端始终接收到标准化的响应格式。通过定义CommonResult通用响应类,封装了错误码、数据和提示信息,并提供错误处理、成功响应等方法。结合ServiceException异常体系,实现了: 统一的响应结构(code/data/msg) 错误码与异常信息的自动转换 参数化消息格式化功能 异常状态检查方法 这种设计保证了前后端交互的一致性,简化了错误处理流程,同时支持动态错误消息的生成。
2025-09-28 18:46:34
221
原创 后端_本地缓存:零抖动的极速缓冲层
本文介绍了本地缓存的核心价值与实现方案。通过将低频变更的热数据加载到JVM内存,可实现性能提升1-2个数量级。文章详细阐述了架构设计:基于Redis Pub/Sub实现多实例缓存同步,采用全量替换的幂等刷新策略。提供了完整的编码实现三步曲:接口定义、启动预热、广播刷新机制,并给出高级增强方案(局部/延迟/灰度刷新)和常见问题排查方法。该方案特别适合读多写少场景,能显著降低接口响应时间和数据库压力,建议遵循"数据不可变"和"幂等刷新"两大原则实施。
2025-09-28 18:44:44
454
原创 后端_看不见的隐私盾牌:一文读懂数据脱敏
本文介绍了基于Jackson框架的API敏感数据脱敏方案,通过自定义注解与序列化处理器实现数据保护。核心原理是在VO/DTO字段添加脱敏注解(如@MobileDesensitize),由StringDesensitizeSerializer调用对应的DesensitizationHandler进行脱敏处理。组件采用模块化设计,包含正则表达式和滑动窗口两种处理方式,支持手机号、身份证等常见敏感字段的默认脱敏规则,同时允许通过继承AbstractRegexDesensitizationHandler等抽象类实现
2025-09-25 19:40:23
793
原创 后端_HTTP 接口签名防篡改实战指南
本文介绍了开放API接口签名机制的核心原理与实战集成方法。签名机制基于对称加密、参数排序和时效校验实现,通过AOP切面自动拦截校验请求,无需侵入业务代码。核心流程包括调用方生成签名和服务端校验签名,确保数据传输安全性和完整性。集成签名功能分为三步:配置调用方密钥、启用接口签名校验、按规则调用接口。文中还提供了签名失败排查步骤和复杂场景解决方案,帮助开发者快速落地安全可靠的API对接方案。
2025-09-21 12:01:56
1180
原创 前后端_时间参数传递及格式化
本文全面介绍了项目中时间参数的处理方法,涵盖基础场景和自定义格式化。主要内容包括:1)Query和Request Body两种时间传参方式的后端接收与前端传递实现;2)默认采用Long时间戳的优势及实现原理;3)通过Jackson配置全局和局部时间格式的方法。文章提供了完整的代码示例,帮助开发者根据业务需求选择合适的时间处理方案,确保前后端高效协作。
2025-09-19 22:17:49
886
原创 L03_Redis知识图谱
这些Redis 知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。
2024-06-29 17:22:52
1094
原创 L02_并发编程知识图谱
这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。
2024-06-23 15:33:19
1015
原创 L01_JVM 高频知识图谱
这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。
2024-05-25 23:51:38
454
原创 研发安全(二)——后端开发必须掌握的SQL注入漏洞与防护
SQL 注入对于我们研发人员来说,应该基本都听说过,甚至还在开发功能过程中不知不觉引入了SQL注入漏洞,只是没被发现而已。所以,本文会系统的介绍下SQL注入漏洞的危害以及我们开发过程中如何进行防护。
2024-03-24 18:58:13
341
1
原创 MySQL调优之SQL语句
在开发中,我们要尽量写出高性能的 SQL 语句,但也无法避免一些慢 SQL 语句的出现,或因为疏漏,或因为实际生产环境与开发环境有所区别,这些都是诱因。面对这种情况,我们可以打开慢 SQL 配置项,记录下都有哪些 SQL 超过了预期的最大执行时间。//开启慢SQL日志//记录日志地址//最大执行时间除此之外,很多数据库连接池中间件也有分析慢 SQL 的功能。
2024-03-17 23:26:54
877
原创 研发安全(一)——研发人员必须掌握的安全开发常识
掌握安全开发常识对于研发人员来说至关重要。通过树立正确的安全开发意识、遵循安全原则、实施数据安全与隐私保护、进行输入验证与过滤、管理漏洞与风险、遵循安全编码规范、进行安全测试与验证、持续学习与跟踪最新安全动态、跨领域合作与沟通以及遵守合规性与法规要求等多方面的努力,研发人员可以有效提升软件的安全性,为用户提供更加安全、可靠的服务。
2024-03-17 11:37:22
1085
原创 Docker 安装 MySQL5.7
如果你安装了 docker-desktop,点击图标进入命令窗口。整个 pull 过程需要花费一些时间,耐心等待。#启动容器,并设置mysql忽略大小写。#输入命令,并按提示输入密码root。
2023-10-13 22:56:27
928
原创 L07_Spring 生命周期
导读1、BeanFactory 是怎样处理 Bean 生命周期?BeanFactory 的默认实现为 DefaultListableBeanFactory,其中 Bean生命周期与方法映射如下:(1) BeanDefinition 注册阶段 - registerBeanDefinition(2) BeanDefinition 合并阶段 - getMergedBeanDefinition(3) Bean 实例化前阶段 - resolveBeforeInstantiation Instantiati
2022-04-05 20:38:38
164
原创 L06_Spring 依赖来源
导读1、依赖查找的来源1.1、BeanDefinition元数据:BeanDefinition注册:BeanDefinitionRegistry#registerBeanDefinition类型:延迟和非延迟顺序:Bean 生命周期顺序按照注册顺序<bean id="user" class="com...User">@Bean public User user(){...}BeanDefinitionBuilder1.2、单例对象来源:外部普通 Java 对象(
2022-04-05 12:00:58
156
原创 L04_spring依赖查找
spring 依赖查找1、单一类型依赖查找单一类型依赖查找接口 - BeanFactory(1)根据 Bean 名称查找:getBean(String)(2)根据 Bean 类型查找 :getBean(Class)getBeanProvider(Class)( Spring 5.1 Bean 延迟查找)(3)根据 Bean 名称 和类型查找:getBean(String,Class)2、集合类型依赖查找集合类型依赖查找接口 - ListableBeanFactory(1)根据 Bean
2022-04-05 10:22:33
431
原创 L05_spring依赖注入
spring 依赖注入1、依赖注入的模式和类型1.1、Setter 方法注入实现方法(1)手动模式XML 资源配置元信息<bean class="com.injection.UserHolder"> <property name="user" ref="user"></property></bean>Java 注解配置元信息API 配置元信息(2)自动模式#byName <bean class="injecti
2022-04-05 10:20:13
439
原创 2022-03_shell 如何编写定时任务?
导读crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。1. crontab 使用步骤(1)、编写定时任务需求脚本,如以下脚本 处理vertica ros to many 问题。脚本需要在 vertica 需要放在vertica mpp 服务器执行。ros_mergetout_task.sh 如下所示:#!/bin/sh#Au
2022-03-31 21:45:00
2594
原创 2022-03_arthas 如何热更新线上代码?
导读当线上出问题,可能因为一个简单的判断逻辑写错或者业务逻辑有问题,需要及时修复验证,修改代码,打包上线时间周期长,有没有快速的修复解决办法呢?那今天就主要来介绍下 如何使用 arthas 工具热更新线上代码?1. 什么是Arthas?Arthas 是Alibaba开源的Java诊断工具。详情见http://arthas.gitee.io/2. 如何使用 arthas 工具热更新线上代码?热更新步骤:(1)jad 命令反编译出内存中的字节码,生成class文件。(2) 使用 sc 查找类加载器
2022-03-31 21:30:00
1001
原创 L03_什么是 BeanDefinition
什么是 BeanDefinition?BeanDefinition 是SpringFreamwork 定义配置元信息的接口。包含:• Bean 的类名• Bean 行为配置元素,如作用域、自动绑定的模式,生命周期回调等• 其他 Bean 引用,又可称依赖• 配置设置,比如 Bean1、BeanDefinition 元信息属性说明ClassBean 全类名NameBean 名称或 IDScopeBean 作用域范围Constructor ArgsB
2022-03-25 09:03:58
317
原创 L02_什么是IoC容器?
导读Spring IoC 容器负责创建对象、管理对象,装配对象、配置对象、并且管理这些对象的生命周期。本文涉及代码均为部分代码,仅仅供个人学习记录参考。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hc0YzrMq-1647929291235)(./images/L02.png)]1、IoC 依赖查找根据 Bean 名称查找根据 Bean 类型查找根据 Bean 名称 + 类型查找根据Java 注解查//根据名称-实时查找User user = (Us
2022-03-22 14:09:28
159
原创 L04_什么是数组
导读在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗?1、什么是数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。2、数组的操作实现2.1、随机访问数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。2.2、插入如果在数组的末尾插入元素,那就不需要移动数据了,这时的时间复杂度为 O(1)。但如果在数组的开头插入元素,那
2022-03-13 22:30:46
934
原创 L03_如何评估算法的好坏
导读我们都知道,数据结构和算法本身解决的是“快”和“省”的问题。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。1、什么是复杂度分析复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。2、为什么要进行复杂度分析复杂度分析有不依赖执行环境*、成本低、效率高、易操作、指导性强的特点。掌握复杂度分析,有利于编写出性能更优的代码,降低系统开发和维护成本。3、如何进行复杂度分析3.1、大O表示法
2022-03-13 22:20:07
683
Java编码规范总结
2017-11-18
WebService
2018-02-13
MobaXterm_Portable_v20.3.zip
2020-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅