<p>这是整个bean的核心部分,是bean注册以及加载的默认实现</p>
spring源码深度解析学习 |
spring源码深度解析
spring框架、环境搭建
诞生背景、架构以及应用场景
spring源码阅读环境搭建
spring框架有哪些模块
bean的加载
bean的加载过程
BeanFactory和Factory的区别
循环依赖
循环依赖案例
spring如何解决
spring bean的生命周期
SpringBean的作用域
Spring IOC、DI理解
自动装配
spring单例的实现原理、如何保证线程安全
容器的基本实现
核心类介绍
DefaultListableBeanFactory
<p>这是整个bean的核心部分,是bean注册以及加载的默认实现</p>
XmlBeanFactory
XmlBeanFactory对DefaultListableBeanFactory进行了扩展,增加了XmlBeanDefinitionReader,用于用xmL文档中读取BeanDefinition,对于Bean的注册以及获取都是使用DefaultListableBeanFactory继承的方法实现的
BeanFactory
BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。BeanFactory只是个接口,并不是IOC容器的具体实现,但是Spring容器给出了很多种实现,如 DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等,其中XmlBeanFactory就是常用的一个,该实现将以XML方式描述组成应用的对象及对象间的依赖关系。
XML的验证模式
DTD
DTD,即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。要使用DTD验证模式需要在XML文件的头部声明,声明代码中含有:DOCTYPE字样,这也是判断是使用DTD还是XSD验证模式的依据
XSD
XML Schema语言就是XSD,对实例文档进行验证时,需要声明名称空间(xmlns=xxxx)以及指定该名称空间所对应的XML Schema文档的存储位置
EntityResolver
官网的解释:如果SAX应用程序需要实现自定义处理外部实体,则必须实现此接口并使用setEntityResolver方法向SAX驱动器注册一个实例。
EntityResolver的作用是项目本身可以提供一个如何寻找DTD声明的方法,由程序来实现寻找DTD声明的过程,比如将DTD文件放到项目中某处,在实现时直接将此文档读取并返回给SAX即可,可以避免通过网络来寻找声明。
Bean的解析、注册
Bean解析,spring分为两个方面:自定义标签解析与默认标签解析
容器的功能扩展
ApplicationContext和BeanFactory的区别
ApplicationContext扩展了哪些功能
国际化
AOP
底层原理
JDK动态代理与CGLIB动态代理区别
AOP中名词的含义
默认标签的解析
bean标签
alias标签
import标签
beans标签
解析流程
spring事务
实现方式、底层原理
传播行为
隔离级别
自定义标签的解析
案例书写
解析流程
springboot
启动原理
如何实现一个starter
spring和springboot的区别
springmvc
请求处理流程
运行、启动流程
源码中应用的设计模式
模版模式
工厂模式
观察者模式
单例模式
代理模式
策略模式