教程目录
Spring 的 IOC 和 DI 是什么?
一、IOC(控制反转) 对象的创建和依赖管理由容器负责,而不是在代码中 new。控制权从业务代码转移到 Spring 容器。 二、DI(依赖注入) IOC 的实现方式。容器把对象依赖的其他对象注入进去。 三种注入方式: - 构造器注入:通过构造方法,推荐(依赖不可变、无循环依赖风险)。 - sett
Spring Bean 的作用域有哪些?
一、singleton(默认) 容器中只有一个实例,全局共享。适合无状态 Bean。 二、prototype 每次获取都创建新实例。适合有状态 Bean。 三、request(Web) 每次 HTTP 请求一个实例。 四、session(Web) 每个 HTTP Session 一个实例。 五、ap
Spring AOP 的实现原理?
一、AOP 概念 面向切面编程,把横切逻辑(日志、事务、权限)从业务代码中抽离,通过动态织入实现。 二、动态代理 JDK 动态代理:目标类实现接口时使用,基于反射生成代理类。 CGLIB 代理:目标类无接口时使用,基于 ASM 生成目标类的子类。 Spring 自动选择:有接口用 JDK,无接口用
Spring 事务的传播行为和隔离级别?
一、七种传播行为 传播行为 说明 REQUIRED(默认) 有事务就加入,没有就新建 REQUIRES_NEW 总是新建事务,挂起当前事务 SUPPORTS 有事务就加入,没有就非事务执行 NOT_SUPPORTED 非事务执行,挂起当前事务 MANDATORY 必须有事务,否则抛异常 NEVER
Spring 如何解决循环依赖?
一、什么是循环依赖 A 依赖 B,B 依赖 A,形成循环。 二、三级缓存 Spring 通过三级缓存解决 singleton 的循环依赖: singletonObjects:一级缓存,存完全初始化好的 Bean。 earlySingletonObjects:二级缓存,存早期引用(实例化但未属性赋值)