一、背景 在网络传输敏感数据时,接口加密是保障安全的核心手段。下面就说一说如何在 SpringBoot 中实现 RSA+AES 混合加密方案,同时结合两种算法的优势,确保数据传输的安全性与高效性。 二、加密方案优势 算法 特点 适用场景 RSA 非对称加密,安全性高,但加密速度慢,适合加密少量数据(如密钥)。 加密 A […]
一、背景 在网络传输敏感数据时,接口加密是保障安全的核心手段。下面就说一说如何在 SpringBoot 中实现 RSA+AES 混合加密方案,同时结合两种算法的优势,确保数据传输的安全性与高效性。 二、加密方案优势 算法 特点 适用场景 RSA 非对称加密,安全性高,但加密速度慢,适合加密少量数据(如密钥)。 加密 A […]
前言 参数校验是保证程序健壮性的重要环节,前端校验为用户体验,后端校验为系统安全。Spring Boot 中常用 @Valid 和 @Validated 实现参数校验,本文将详细解析两者的区别、用法及代码示例。 一、@Valid 注解 1. 功能与依赖 标准规范:属于 Java EE 标准注解(JSR 303 规范), […]
1. 基础概念 URL(统一资源定位符):用于唯一标识互联网资源(如网页、图片、API等)。 目录 vs. 资源: 以“/”结尾的 URL 通常表示目录,例如:https://example.com/folder/。 不以“/”结尾的 URL 通常指向具体资源(如文件),例如:https://example.com/f […]
状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,看起来像是对象修改了它的类。其核心思想是将状态相关的行为封装到独立的状态类中,并让对象在不同状态间切换时委托行为给当前状态对象。 核心概念 状态接口(State Interface):定义特定状态下的行为方法。 具体状态(C […]
策略模式(Strategy Pattern)是一种行为设计模式,它允许在运行时选择算法的行为。其核心思想是将算法的定义、封装和替换分离,使得算法可以独立于客户端变化。 核心概念 策略接口(Strategy Interface):定义所有支持的算法的公共接口。 具体策略(Concrete Strategies):实现策略 […]
模板方法模式(Template Method Pattern) 是一种行为设计模式,它定义了一个算法的骨架,将一些步骤的具体实现延迟到子类中。这种模式让子类在不改变算法结构的情况下,重新定义算法中的某些步骤。 核心概念 抽象类(Abstract Class) 定义算法的骨架(模板方法),包含多个步骤的方法调用。 部分步 […]
一、Docker核心概念解析 1. 基础定义 容器(Container):从镜像创建的轻量级运行实例,提供独立隔离的运行环境,支持跨环境一致运行。 镜像(Image):容器的模板,包含应用程序、依赖库、配置文件等所有运行所需资源。 Dockerfile:定义镜像构建流程的脚本文件,通过指令描述镜像的生成逻辑。 Dock […]
1. 为什么禁止使用BigDecimal的equals方法做等值比较? BigDecimal的equals方法在等值比较时存在一些问题,通常不建议直接使用它来判断数值的相等性。主要原因以及推荐的替代方案如下: equals方法比较严格,包含了精度和符号的比较:BigDecimal.equals不仅比较数值本身,还会比较 […]
一、什么是双 Token 机制? 双Token机制是通过两种令牌管理用户认证与授权的方案,核心令牌包括: Access Token(访问令牌) 用于身份验证和授权,每次请求时携带。 有效期短(如15分钟),降低泄漏风险。 Refresh Token(刷新令牌) 用于在Access Token过期后获取新令牌。 有效期长 […]
一、引言:Bean的自我觉醒之路 在Spring容器中,Bean由容器管理生命周期,但通过Aware接口,Bean可以“觉醒”并感知容器的特定资源。本文将介绍常见Aware接口的用法与场景,帮助开发者灵活掌控Bean的能力。 二、Aware接口概述 定义:Spring提供的一组标记接口,用于让Bean获取容器中的特定对 […]
面试中被问到“Java为什么有这么多‘O’,比如PO、DTO、VO、BO”,我之前的回答不够系统,复盘时发现自己对这些“O”的理解和串联不够清晰。本文以一个基于Spring Boot + MyBatis的用户查询接口为例,解析各“O”的定位、必要性及对象转换优化方案。 一、场景:用户查询接口 需求:前端通过GET /u […]
当你在面试中流畅地背出线程池的七大参数时,面试官微微一笑,抛出一个灵魂拷问:"那你说说线程池是怎么实现核心线程保活的?非核心线程超时销毁时怎么保证不误杀正在执行任务的线程?" 此时你突然意识到,机械记忆参数的年代早已过去,现在面试官更关注参数背后的设计思想和源码层面的实现逻辑。本文将带你直击线程池最 […]
相信各位 Javaer 在面试中或多或少肯定被问到过线程池相关问题吧,线程池是一个相对比较复杂的体系,基于此可以问出各种各样、五花八门的问题。 若你很熟悉线程池,如果可以,完全可以滔滔不绝跟面试官扯一个小时线程池,一般面试也就一个小时左右,那么这样留给面试官问其他问题的时间就很少了,或者其他问题可能问的也就不深入了,那 […]
比了一圈,发现阿里云居然最便宜……实在是出乎我的意料。 本来想入手香港的,后来对比了下价格…… 2C 2G的配置,一次买五年,香港1900左右,其他地区基本在1700…… 网络延迟,香港的不走精品EIP的话,都是走的跨境链路。 OSS延迟: ping oss-ap-northeast-1.aliyuncs.com PI […]
今天逛博客,看到其他大佬的博客有个时间进度条的小插件,意动之下,就决定自己也搞一个玩玩。 主要功能是通过短码显示今天、本周、本月、今年已经过去了多久,当然也可以通过短码指定显示的类型,类型分别定义为:'day' - 今天, 'week' - 本周,'month' - 本月, 'year' - 今年。 使用方式很简单,示 […]
封侯非我意,但愿海波平。