# Spring
10 篇文章与「Spring」相关的全部文章。
OpenFeign 的工作原理?
一、使用 @FeignClient(name = "user-service") public interface UserClient { @GetMapping("/user/{id}") User getUser(@PathVariable Long id); } 二、原理
Sentinel 的工作原理?
一、核心功能 流量控制:QPS、线程数限流,支持匀速、预热等模式。 熔断降级:慢调用比例、异常比例、异常数达到阈值时熔断。 系统保护:CPU、负载、入口 QPS、平均 RT、并发线程数。 热点参数限流:针对参数维度限流。 二、工作原理 基于滑动窗口统计实时指标。 通过责任链模式处理请求:NodeSe
Spring Cloud Gateway 的工作原理?
一、核心概念 Route:路由,由 ID、目标 URI、断言、过滤器组成。 Predicate:断言,匹配 HTTP 请求的条件(路径、方法、Header 等)。 Filter:过滤器,请求前后处理(鉴权、限流、日志、修改请求/响应)。 二、执行流程 请求进入 Gateway,由 HandlerMa
Nacos 的 CP 和 AP 模式?
一、AP 模式(临时实例) 服务实例注册后,通过心跳维持,心跳超时则剔除。 各节点数据可能短暂不一致,但保证可用性。 适合服务注册场景,实例变化频繁。 二、CP 模式(持久实例) 实例注册需要集群半数以上节点确认,强一致性。 节点不可用时不会自动剔除,需手动注销。 适合需要强一致性的场景。 三、切换
Spring Cloud 常用组件有哪些?
一、注册中心 Eureka:Netflix 出品,AP,自我保护机制。 Nacos:阿里出品,支持 CP/AP 切换,同时支持配置中心。 Consul:支持服务发现、KV 存储、健康检查。 二、配置中心 Spring Cloud Config:基于 Git。 Nacos Config:配置实时推送。
Spring 如何解决循环依赖?
一、什么是循环依赖 A 依赖 B,B 依赖 A,形成循环。 二、三级缓存 Spring 通过三级缓存解决 singleton 的循环依赖: singletonObjects:一级缓存,存完全初始化好的 Bean。 earlySingletonObjects:二级缓存,存早期引用(实例化但未属性赋值)
Spring 事务的传播行为和隔离级别?
一、七种传播行为 传播行为 说明 REQUIRED(默认) 有事务就加入,没有就新建 REQUIRES_NEW 总是新建事务,挂起当前事务 SUPPORTS 有事务就加入,没有就非事务执行 NOT_SUPPORTED 非事务执行,挂起当前事务 MANDATORY 必须有事务,否则抛异常 NEVER
Spring AOP 的实现原理?
一、AOP 概念 面向切面编程,把横切逻辑(日志、事务、权限)从业务代码中抽离,通过动态织入实现。 二、动态代理 JDK 动态代理:目标类实现接口时使用,基于反射生成代理类。 CGLIB 代理:目标类无接口时使用,基于 ASM 生成目标类的子类。 Spring 自动选择:有接口用 JDK,无接口用
Spring Bean 的作用域有哪些?
一、singleton(默认) 容器中只有一个实例,全局共享。适合无状态 Bean。 二、prototype 每次获取都创建新实例。适合有状态 Bean。 三、request(Web) 每次 HTTP 请求一个实例。 四、session(Web) 每个 HTTP Session 一个实例。 五、ap
Spring 的 IOC 和 DI 是什么?
一、IOC(控制反转) 对象的创建和依赖管理由容器负责,而不是在代码中 new。控制权从业务代码转移到 Spring 容器。 二、DI(依赖注入) IOC 的实现方式。容器把对象依赖的其他对象注入进去。 三种注入方式: - 构造器注入:通过构造方法,推荐(依赖不可变、无循环依赖风险)。 - sett
