自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(203)
  • 收藏
  • 关注

原创 Spring Security综合实战与安全加固详解

方案设计:按形态选型(表单会话/ JWT / 微服务 / SSO);原则是认证集中、授权就近、状态最少。加固清单:认证(强哈希/防爆破/多因素)、授权(最小权限/归属校验)、传输(HTTPS/头)、会话与令牌(超时/短效/安全存储)、配置与依赖跟进。漏洞焦点:水平越权是头号问题;认证绕过多源于放行过宽与路径匹配;Token 密钥与存储是重灾区;信息泄露靠兜底与统一响应。审计可观测:监听安全事件、失败率告警、权限审计、渗透测试与依赖扫描常态化。

2026-10-18 18:30:00 58

原创 Spring Security 6.x新特性与架构演进详解

迁移要点:Adapter 移除改 Bean、匹配器统一 requestMatchers、方法安全注解更名、jakarta 命名空间、默认行为收紧。演进主线:配置组件化(一切皆 Bean、多链天然)、AuthorizationManager 统一授权、SecurityContext 处理显式化、默认安全持续收紧。Lambda DSL:作用域清晰、消除链式歧义,6.x 标准风格。升级策略:5.8 过渡 → 逐项替换 → 6 编译 → 全量回归安全行为 + 第三方组件核查。

2026-10-18 14:14:55 154

原创 Spring Security OAuth2与SSO详解

OAuth2 定位:委托授权框架(不是认证协议),令牌代替密码,授权最小化(scope + 时效)。授权码模式是主流:码经前端、Token 交换在后端、state 防 CSRF、PKCE 防码拦截;密码/隐式模式已废弃。Spring 三形态:Client(接入第三方登录)、Resource Server(验 Token)、Authorization Server(发 Token),按角色选 starter。SSO:认证中心共享会话 + 授权码换取各应用登录态;

2026-10-16 09:34:49 379

原创 Spring Security JWT无状态认证详解

if (token!// 验签 + 过期在内部完成// claims → 权限// 无 Token/无效则匿名继续,由授权拒绝JWT 特性:三段结构、签名防篡改但不加密、自包含可验真、无法天然撤销;敏感信息不进 payload。无状态架构:服务端不存会话,验签重建身份;配 STATELESS + 关 CSRF;水平扩展友好、吊销难。校验链:自定义过滤器提取 Bearer → 验签验期 → claims 转权限入上下文;注意 iss/aud 与权限口径。生命周期。

2026-10-16 09:32:54 397

原创 Spring Security会话管理与CSRF详解

会话形态:有状态(会话存上下文)与无状态(STATELESS,JWT);按认证方式选择,混合场景分链配置。会话固定:登录后更换 sessionId(默认 migrateSession)使被盗用的旧 ID 失效;不要关闭。并发控制集群要共享会话才全局生效。CSRF:利用浏览器自动带 Cookie 冒名提交;防护是绑定会话的 Token,状态变更请求必带;无状态 API 才豁免;SameSite 是纵深补充不替代。安全头:默认添加防嗅探/点击劫持等,按需配置 CSP。

2026-10-15 13:30:00 741

原创 Spring Security授权机制详解

URL 级规则:authorizeHttpRequests 声明式,顺序敏感、anyRequest 兜底;匹配器可到"方法+路径"。角色权限:权限最小单元、角色是打包;hasRole自动补ROLE_前缀——口径不一致是 403 常见根因;权限命名资源:操作。方法级安全:@EnableMethodSecurity + @PreAuthorize 等,AOP 实现,受代理限制(自调用绕过);URL 挡粗、方法控细。表达式:SpEL 支持角色/状态/主体/返回值/自定义 Bean 判定,复杂规则组件化。

2026-10-15 09:13:26 323

原创 Spring Security认证机制详解

三要素模型:Authentication(两态令牌)、AuthenticationManager(分发)、AuthenticationProvider(校验);Provider 链支撑多认证方式共存。:按用户名查用户的单一职责接口,生产实现查库返回 UserDetails(含账号状态标志)。密码编码:BCrypt 加盐哈希是默认;DelegatingPasswordEncoder 支持算法平滑升级;不存明文、错误信息防枚举。认证流程。

2026-10-14 13:45:00 704

原创 Spring Security架构总览与过滤器链详解

自定义过滤器(如 JWT 解析)插到认证过滤器之前,把凭证解析结果放入安全上下文。职责:认证 + 授权 + 常见攻击默认防护;位于业务之前的统一拦截层。三层架构:DelegatingFilterProxy(桥接)→ FilterChainProxy(调度)→ SecurityFilterChain(有序过滤器);过滤器单一职责、可插拔。6.x 配置多链按 @Order + 匹配器选择;自定义过滤器 addFilterBefore 插入。处理流程。

2026-10-14 09:20:50 380

原创 Spring Web综合实战与性能调优详解

踩坑六类:参数绑定与批量赋值、序列化(实体不外泄)、异常兜底、线程阻塞与上下文、会话安全、超时与大小配置。调优:减处理成本(压缩/缓存)→ 线程模型(异步/虚拟线程)→ 传输(Keep-Alive/HTTP2)→ 依赖合并;观测先行。安全基线:输入校验、输出编码、认证鉴权、CSRF/XSS、敏感数据不外泄、依赖漏洞跟进。接口纪律:状态码规范、幂等声明、版本兼容、OpenAPI 文档、契约测试。

2026-10-13 13:45:00 668

原创 WebFlux实践与选型对比详解

全链路响应式:收益要求端到端非阻塞,任一阻塞环节使收益归零;阻塞优先换响应式实现,次选隔离到 boundedElastic。WebClient:响应式客户端替代 RestTemplate;惰性执行、需配超时;错误用 onStatus 处理。响应式数据访问:R2DBC/响应式 Mongo/Redis;响应式仓库返回 Mono/Flux;事务靠 ReactiveTransactionManager + Context 传播。选型:海量连接 + IO 密集 + 生态支持才选 WebFlux;

2026-10-13 09:20:42 262

原创 WebFlux与响应式编程基础详解

响应式模型:以流为中心、事件驱动、异步非阻塞,用少量线程承载海量并发。Reactor:Mono(0/1)与 Flux(0…N);操作链是蓝图、subscribe 才执行;map/flatMap/filter/zip/错误处理是核心操作符;调度器负责线程切换。背压:消费者按需 request(n),生产者限速——流量控制内建于协议。WebFlux:异步非阻塞 Web 栈,默认 Netty;注解式或函数式;铁律是不阻塞 EventLoop;适合 IO 密集高并发,常规业务用 MVC。

2026-10-12 14:00:00 548

原创 Spring MVC文件上传SSE与WebSocket详解

文件上传:MultipartFile 接收 + 大小配置;生产用对象存储/直传,大文件分片;校验类型、防路径穿越。SSE:HTTP 长连接单向推送,SseEmitter 异步发送,浏览器 EventSource 自动重连;简单可靠。WebSocket:握手升级全双工;原生 @EnableWebSocket 或 STOMP 订阅广播;注意心跳、会话管理、集群广播。选型:轮询 < SSE < WebSocket 复杂度递增,按方向与实时性匹配。

2026-10-12 09:38:05 407

原创 Spring MVC拦截器异常处理与跨域详解

拦截器:preHandle(可中断)/postHandle/afterCompletion 三回调;注册指定路径与顺序;与过滤器分层不同——过滤器在 Servlet 外圈,拦截器在 MVC 内圈。异常处理:HandlerExceptionResolver 链;@RestControllerAdvice 全局按类别转统一错误响应;未知异常记日志告警、不外泄堆栈。CORS:浏览器同源策略的例外机制,靠响应头声明;简单请求直发、非简单先预检(OPTIONS);配置三种方式,带凭证时不能。

2026-10-10 18:30:00 616

原创 RESTful设计与参数校验详解

/ 提取各字段错误 → 400 + 结构化错误体业务错误码 + 人类可读消息 + 字段级明细,状态码与错误语义对齐;细节见 04 篇异常体系。REST 规范:资源化名词复数、无状态、HTTP 方法与状态码表达语义;查询/分页/排序走查询参数。状态码:201 创建、204 无内容、401 未认证、403 无权限、409 冲突、422 校验失败——与语义对齐而非全 200。版本管理:URI 版本最常用;加字段兼容、破坏性变更升版本。校验。

2026-10-10 14:07:18 251

原创 Spring MVC注解驱动与参数解析详解

映射注解:@GetMapping 等快捷注解 + 路径变量/条件匹配;类级方法级拼接;理解方法幂等语义。参数解析:注解驱动的 Resolver 链,逐个 supportsParameter 试探;@RequestBody(消息转换)与 @ModelAttribute(字段绑定)是两条主要路径,可自定义解析器。返回值:@ResponseBody 序列化、视图名、ResponseEntity(最灵活)、异步返回值。绑定转换:字符串到类型的 Converter/Formatter;

2026-10-09 13:30:00 672

原创 Spring MVC架构与请求处理流程详解

MVC:Model/View/Controller 职责分离,Controller 薄、逻辑下沉。六大组件:DispatcherServlet 统一入口、HandlerMapping 找方法、HandlerAdapter 解析调用、Handler 业务方法、ViewResolver/HttpMessageConverter 处理输出。请求链路:到达 → 映射 → 参数解析 → 执行 → 结果处理(视图或 JSON)→ 写回;异常交异常解析器。装配:Boot 自动注册映射 /;

2026-10-09 09:15:55 333

原创 Spring Boot 3.x新特性与综合调优详解

迁移:基线 JDK 17 + jakarta 命名空间是两大硬变化;先经 2.7 过渡、批量替换命名空间、盘点第三方兼容性;Security 6 API 单独应对。原生镜像:AOT 换来毫秒启动与低内存,代价是闭世界假设与反射提示;新服务评估,存量谨慎。可观测:Metrics(Micrometer)+ Tracing(Micrometer Tracing)+ 结构化日志带 traceId,三支柱在 Boot 一站式整合。调优:容器内明确堆上限、池按估算配并监控水位、分层镜像、依赖瘦身;

2026-10-08 13:30:00 606

原创 Spring Boot 启动流程与生命周期详解

两阶段启动:构造期推断应用类型并加载 Initializer/Listener;run 期准备环境 → 建上下文 → refresh(起容器、实例化单例)→ 跑 Runner → Ready。事件序列Ready(可接流量);是挂钩启动逻辑的观测点。扩展点:Initializer(刷新前定制)、Listener(事件挂钩)、ApplicationRunner/CommandLineRunner(启动后一次性任务,可做自检)。优雅停机。

2026-10-08 09:09:22 817

原创 Spring Boot Actuator监控运维详解

ComponentCounter(计数)、Gauge(瞬时值)、Timer(耗时)。端点体系:HTTP提供健康/指标/配置/容器快照/运维操作;默认只暴露 health,按需 include,最小暴露。健康检查:HealthIndicator 聚合(内置 + 自定义);K8s 探针分 liveness/readiness,支撑无损上下线;细节按需展示。指标:Micrometer 门面 + 内置自动指标 + 自定义 Counter/Timer;

2026-10-07 16:00:00 704

原创 Spring Boot Web开发与内嵌容器详解

静态错误页放;深度定制实现。内嵌容器:starter-web 默认 Tomcat,在 refresh 的 onRefresh 阶段创建启动;可换 Undertow/Jetty;定制走属性或 WebServerFactoryCustomizer。Web 自动配置:DispatcherServlet、消息转换、静态资源、默认 MVC 行为;用 WebMvcConfigurer 增量定制,勿用 @EnableWebMvc 覆盖默认。静态/模板:静态资源默认映射若干 classpath 目录;

2026-10-07 11:55:20 407

原创 Spring Boot 配置体系详解

格式:properties 扁平、yml 层级;yml 用空格缩进,多文档用---配 profile。优先级:命令行 > 系统属性/环境变量 > jar 外 > jar 内 > 默认;外部覆盖内部是部署友好设计;同位置 properties 覆盖 yml、profile 覆盖主配置。类型安全绑定:@ConfigurationProperties 前缀绑定 + 松散绑定 + @Validated 校验 + record/构造器不可变绑定,全面优于 @Value 堆。外部化。

2026-10-06 16:41:38 488

原创 Spring Boot Starter机制与自定义详解

/ 默认值结构:Starter = 依赖聚合模块 + 自动配置模块(配置类/属性类/清单);本质是"引一个坐标完成依赖+配置"。命名:官方,第三方。版本管理:parent 继承或 BOM import 二选一;默认跟 BOM,升级改 BOM 而非单点覆盖。自定义五步:属性类 → 自动配置类(条件齐全)→ imports 清单 → 聚合模块 → 使用方引依赖配属性。体验增强:configuration-processor 生成元数据供 IDE 提示。

2026-10-06 16:39:36 423

原创 Spring Boot 自动配置原理详解

触发链:@SpringBootApplication → @EnableAutoConfiguration → @Import(AutoConfigurationImportSelector) → 读清单、过滤、注册。候选清单:2.7 前在 spring.factories,3.x 在 AutoConfiguration.imports;聚合所有 jar 的声明,候选上百但按需装配。条件过滤漏斗。

2026-10-05 19:00:00 679

原创 Spring Boot 核心理念与快速上手

定位:Boot 是 Spring 的开箱即用脚手架,不是新框架;解决配置繁琐、依赖冲突、部署复杂、整合成本高四大痛点。三大支柱:自动配置(按依赖智能装配)、起步依赖(版本协调)、内嵌容器(java -jar 直跑)。最小应用:starter-web + @SpringBootApplication + 一个 Controller,main() 即起。组合注解启动类位置决定扫描范围。工程结构:启动类在根包,配置按 profile 分,打成可执行 fat jar。

2026-10-05 14:33:57 511

原创 Spring Test与综合实战详解

Spring Test 四能力:上下文缓存复用、测试类注入、事务自动回滚、@MockBean/@SpyBean 替换;上下文昂贵,能不起就不起。注解族:SpringExtension + @ContextConfiguration(纯 Framework 入口);@Transactional 测试回滚;@DirtiesContext 慎用。分层策略:领域逻辑纯单测、Web/数据层切片、关键链路少量完整集成;测试困难是设计信号(构造器注入反哺可测性)。踩坑地图。

2026-10-04 18:00:00 649

原创 Spring 任务调度与异步执行详解

线程池抽象:ThreadPoolTaskExecutor 是主力;线程命名、有界队列、拒绝策略、停机等待是四个必配纪律;SimpleAsync 生产禁用。@Async:本质是 AOP 代理(自调用失效);void 返回的异常默认静默;事务/安全/traceId 等上下文不跨线程,用 TaskDecorator 快照恢复或显式传递。@Scheduled:cron/fixedRate/fixedDelay 三选一,超时任务用 fixedDelay;默认单线程调度必须扩池;

2026-10-04 13:47:44 384

原创 Spring 事务管理与数据访问详解

传播行为(与已有事务的关系)隔离级别(并发可见性)超时(超时自动回滚,防长事务)只读(只读优化提示)事务抽象:PlatformTransactionManager 统一 JDBC/ORM/JTA;声明式 @Transactional 为主流,TransactionTemplate 用于把事务范围收到最小。传播行为七种三组:支持当前(REQUIRED 默认/SUPPORTS/MANDATORY)、挂起另起(REQUIRES_NEW/NOT_SUPPORTED/NEVER)、嵌套(NESTED);

2026-10-03 18:15:00 365

原创 Spring 事件机制与条件装配详解

事件三要素:事件对象(6.x 普通对象即可)、ApplicationEventPublisher 发布、@EventListener 监听;Multicaster 按类型广播。同步默认、异步可选:@Async 让监听进线程池,代价是异常与上下文不再传播。:把副作用延迟到事务提交后(默认 AFTER_COMMIT),避免"回滚了通知已发出";无事务时默认不触发。内置事件:ContextRefreshed/Closed 用于初始化自检与优雅停机挂钩。边界:应用内解耦用它,跨进程可靠性交给消息队列;

2026-10-03 13:50:42 367

原创 Spring 资源与环境配置体系详解

Resource 抽象:统一 classpath/文件/URL/字节流的访问,按前缀自动选实现;批量扫描多 jar。属性源有序、先到先得,支持动态增删调序——配置覆盖问题的分析框架。占位符${}由 PropertySourcesPlaceholderConfigurer 解析,缺值快速失败;@Value 适合单值与 SpEL。Profile:环境差异的正交开关,作用于配置文件与 @Profile Bean;激活收敛到部署系统。配置绑定。

2026-10-02 19:00:00 674

原创 Spring AOP原理与实践详解

AOP 分离横切关注点:Spring AOP 只支持方法级连接点,运行期通过代理织入;核心术语切面/连接点/切点/通知/织入要分清。五种通知:@Around 最强大(控制是否执行目标),@After 是 finally 语义。两种代理:JDK 基于接口、CGLIB 生成子类;Boot 2.x 起默认 CGLIB;JDK 代理下 instanceof 具体类会失败。切点:execution 通配,@annotation 最推荐(自定义注解驱动,精确可维护)。织入时机。

2026-10-02 14:54:43 278

原创 Spring 依赖注入与循环依赖详解

A 依赖 B,B 依赖 A(setter/字段注入)若等对方完全就绪才注入 → 死锁,谁都创建不完先创建半成品(实例化但不注入),提前暴露引用,让对方先拿到引用完成创建,再回头补齐自己。三级缓存就是支撑这个过程的存储结构。注入方式:构造器注入是默认推荐(不可变、完整、可测、暴露依赖过多);字段注入掩盖问题;构造器循环依赖启动即报错,是设计问题的早期暴露。解析规则:@Autowired 按类型(多候选用 @Qualifier/@Primary/集合注入),@Resource 按名称;

2026-10-01 20:00:00 833

原创 Spring IoC容器与Bean生命周期详解

容器不直接保存对象,先保存Bean 的元数据描述——元数据对应配置beanClass实现类scopelazyInit@Lazyprimary@Primary注入信息自动装配模式流程本质:一切配置(注解/Java/XML)先统一翻译成 BeanDefinition,后续流程只面对它——这是"配置方式多样、内核只有一套"的原因。IoC 容器:BeanFactory 是最小内核,ApplicationContext 叠加事件/国际化/资源/环境并即时初始化单例;

2026-10-01 15:53:17 474

原创 Dubbo 综合实战与性能调优详解

生产纪律首位是超时与重试:按方法设超时、非幂等写、幂等兜底;其次是弱依赖配 mock、循环依赖视为设计缺陷。踩坑六大类:超时(默认 1s 不适配、优先级误解)、重试(重复执行、重试风暴)、序列化(字段兼容、异常类缺失、超 payload)、地址(no provider 三元组、推空)、线程(线程池满、消费方同步占线程)、使用(泛化误用、上下文断链、直连上线)。线程模型:派发策略决定什么消息进业务池(默认 all);线程池 fixed/cached/limited/eager 按负载形态选;核心服务。

2026-09-30 15:16:13 382

原创 Dubbo 高级特性与治理实战详解

异步:接口返回释放调用方线程,并行编排是最大收益;提供方异步让业务线程不被慢逻辑占住;异步切断线程,上下文必须显式透传。泛化调用:无接口依赖、字符串 + Map 描述调用,是网关/测试平台的基础设施;业务代码坚持强类型。隐式传参:走旁路通道传 traceId/灰度标记等横切信息;一次调用作用域、不自动穿透、不跨异步——链路穿透要每跳显式接力。校验与回声在提供方入口拦截非法参数;$echo零业务开销探活。令牌:防绕过注册中心直连,随注册信息下发、调用时校验。超时重试完整语义。

2026-09-30 14:02:56 740

原创 Dubbo 注册中心与服务发现详解

接口级发现:接口为注册单元,ProviderURL(含全部参数)注册为临时节点,订阅 + Watcher 推送;模型简单,但超大规模下数据爆炸与推送风暴是结构性瓶颈。应用级发现:实例为注册单元,接口-实例映射放元数据中心;注册量与推送量大幅下降,与云原生视角对齐;代价是多一个元数据中心依赖。迁移:双注册双订阅 + 三态状态机(FORCE_INTERFACE → APPLICATION_FIRST → FORCE_APPLICATION),节奏由配置中心动态控制,可回拨。选型:ZK 强一致适合可靠诉求。

2026-09-29 15:39:23 570

原创 Dubbo 通信协议与序列化详解

通信四层:Protocol(RPC 语义)→ Exchange(请求-响应)→ Transport(Netty 封装)→ Codec(帧与序列化),各层可插拔。dubbo 协议:16 字节定长帧头(魔数 0xdabb、flag、status、requestId、bodyLength)+ 变长体;单一长连接多路复用,适合小报文大并发;payload限制防内存攻击。Triple:HTTP/2 + gRPC 兼容,支持流式调用与云原生生态;3.3 起可映射标准 HTTP/JSON;新系统首选,迁移用双协议。

2026-09-29 14:34:51 420

原创 Dubbo 集群容错与负载均衡详解

Overridereturn "服务暂不可用";// 降级返回Mock 类必须有无参构造;它的实例在消费方本地创建执行,不经过网络。集群层三职责:容错(失败怎么办)、路由(候选集过滤)、选址(选哪台),对应 Cluster / Router / LoadBalance 三个 SPI,Directory 提供候选。六大容错。

2026-09-28 17:22:37 486

原创 Dubbo SPI扩展机制详解

类上加,全场景自动生效;不加注解,通过配置显式挂载(此时按配置中myFilter与前缀组合决定增删)。SPI 是 Dubbo 一切可插拔能力的地基:协议、序列化、容错、负载均衡、代理、过滤器全部是扩展点;记住"配置里的值 = SPI 文件里的 key"。:一个扩展点一个 Loader,从与services三目录扫描,懒加载 + 三级缓存,按 key 精确取单例,@SPI指定默认。@Adaptive把实现选择推迟到调用期,从方法参数的 URL 现场决定,实现"同一框架、每服务各选各的";

2026-09-28 16:35:21 442

原创 Dubbo 核心架构与导出引用原理详解

四个核心抽象撑起整个框架:Invoker(可执行体)、Invocation(调用描述)、Protocol(暴露/引用)、URL(配置总线)。"一切皆 Invoker、配置皆 URL"是读懂源码的两把钥匙。导出流程:ServiceConfig → 包装 Invoker → Protocol.export 生成 Exporter → 开端口 →(注册)。先开端口后注册,导出幂等靠 ExporterMap 缓存。引用流程。

2026-09-25 20:24:08 438

原创 Dubbo RPC基础与入门详解

RPC 的本质是解决寻址、序列化、传输、容错四件事;远程调用与本地调用在延迟、失败模式、参数语义上有本质差异,由此推出"必须配超时、重试必须幂等、出入参必须可序列化"三条纪律。Dubbo 定位是"高性能 RPC + 治理一体化";演进主线两条:服务发现接口级 → 应用级,协议私有二进制 → HTTP/2(Triple)。四大角色中注册中心只存目录不经手调用;Consumer 本地缓存地址 + 推模型,保证注册中心抖动不影响存量调用。快速上手。

2026-09-25 15:51:37 474

空空如也

空空如也

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

TA关注的人

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