摘要:
Spring 三级缓存解决循环依赖 Spring只能解决field和setter注入导致的循环依赖,无法解决构造器注入导致的循环依赖。 Spring只处理了单例Bean对象之间的循环依赖,没有处理原型对象之间的循环依赖 三层缓存 // 三层缓存 public class DefaultSinglet 阅读全文
摘要:
事务隔离级别 脏读:读取了其他事务修改但回滚(未提交)的数据 不可重复读:A事务对同一条数据多次读取,其间B事务对该条数据进行了更改,导致A事务对同一条数据前后读取不一致 幻读:在范围查询时,有其他事务在该范围中新增了数据,导致前后获取到的数据总数不一致 事务传播特性 失效场景: 修饰非public 阅读全文
摘要:
Spring Bean生命周期流程图 概念 四个阶段:实例化(Instantiation) → 依赖注入(populate) → 初始化(Initializing) --(运行时)-> 销毁(destory) 两种作用域: Bean级别:在Bean上声明,只作用于该Bean Aware类接口(Bea 阅读全文
摘要:
XML文件配置 // 使用xml配置文件完成Spring容器的创建 public class Test { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicatio 阅读全文
摘要:
Spring 核心策略 基于Pojo的轻量级编程,实现最小侵入性 基于IOC,实现声明式编程 通过依赖注入完成依赖松耦合,通过面向接口编程实现代码灵活性 通过切面(AOP)和模板减少样板代码 约定优于配置 Spring 编程思想 面向对象编程 - OOP(Object Oriented Progra 阅读全文
摘要:
MVC ① 初始化阶段: ② 运行-Dispatcher阶段: ③ 运行-ViewResolver阶段: PS : DispatcherServlet: onRefresh()方法,触发额外组件的初始化(MVC 9大组件) // MVC 1 : onRefresh方法负责注册额外的初始化组件 Dis 阅读全文
摘要:
AOP ① 代理类创建: ② invoke: PS : AOP是在DI之后,对exposedObject执行applyBeanPostProcessorsAfterInitialization()过程中发生的。AbstractAutoProxyCreator.postProcessAfterInit 阅读全文
摘要:
DI ① 实例化: ② 依赖注入: PS : Spring中,单例对象默认是非延时加载的,而原型对象默认是延时加载的。 AbstractBeanFactory: AbstractBeanFactory#getBean():尝试获取bean,如果缓存中存在着直接返回,否则进入创建逻辑 // DI 1 阅读全文
摘要:
① 定位:定位资源文件(定位配置文件或扫描相关注解) ② 加载:解析配置信息 ③ 注册:将Bean的信息表示解析成BeanDefinition注册到BeanDefinitionMap ClassPathXmlApplicationContext: 初始化资源加载器:AbstractApplicati 阅读全文
摘要:
1 阅读全文
摘要:
1 阅读全文
摘要:
1 阅读全文
摘要:
1 阅读全文
摘要:
总览 引入servlet-api 依赖 在web.xml中的配置servlet,将对应请求都转发到自写的DispatcherServlet类(并在init-param参数中设置配置文件参数) DispatcherServlet类继承HttpServlet接口,并实现对应的方法。(get,post,i 阅读全文
摘要:
基础知识点 Spring基础知识点 - 核心模块 Spring基础知识点 - 注解 核心知识点 Spring核心知识点 - Bean的生命周期 Spring核心知识点 - 事务传播特性 Spring核心知识点 - 补充 手写实现 手写Spring实现V1 - 单个类实现spring的IOC,DI和H 阅读全文