问题:
1、Spring中有那些核心类?
2、如何扩展一个BeanPostProcessor?
3、Spring中的类加载器?
4、Spring的属性编辑器怎么工作的?
5、Spring的表达式语言处理器怎么工作的?
6、TransactionTemplate编程式事务
7、Spring中的隔离级别
8、解释一下Spring AOP里面的几个名词?
导入IDEA
工程地址
https://github.com/spring-projects/spring-framework
下载之后执行
gradlew cleanIdea :spring-oxm:compileTestJava
再导入
BEANS
interface
BeanFactory
AutowireCapableBeanFactory
/** 配置文件 */
PropertyValues
abstract
/** BeanFactory的一些工作 */
AbstractAutowireCapableBeanFactory
CONTEXT
上下文 (context)
/** simply implements common context functionality */
AbstractApplicationContext
GenericWebApplicationContext
/** 生命周期处理器接口 */
LifecycleProcessor
实现类
/** 默认的生命周期处理器 */
DefaultLifecycleProcessor
BeanFactory
/** interface */
BeanFactory
HierarchicalBeanFactory
ConfigurableBeanFactory
AutowireCapableBeanFactory
ListableBeanFactory
/** implement */
ConfigurableListableBeanFactory
SingletonBeanRegistry
/** singleton bean 的查询和注册 */
SingletonBeanRegistry
/** BeanFactory 的扩展,冻结beanDefinition,提前实例化singleton bean */
ConfigurableListableBeanFactory
BeanPostProcessor
ApplicationContextAwareProcessor
Event
/** 事件广播器 */
ApplicationEventMulticaster
/** 应用上下文刷新事件*/
ContextRefreshedEvent
MVC
/** HttpServlet的简单扩展 */
HttpServletBean
DispatcherServlet
GenericServlet
SimpleUrlHandlerMapping
WEB
/** 配置web*/
WebApplicationInitializer
/**Base servlet for Spring's web framework.*/
FrameworkServlet
/** Central dispatcher for HTTP request handlers/controllers, e.g. for web UI controllers or HTTP-based remote service exporters. Dispatches to registered handlers for processing a web request, providing convenient mapping and exception handling facilities.*/
DispatcherServlet
ConfigurableWebEnvironment
interface
/** 动态更换样式的支持 */
ThemeSource
实现
/** 标准的文件上传 */
StandardServletMultipartResolver
/** 默认的消息国际化*/
AcceptHeaderLocaleResolver
/** 默认的样式支持*/
FixedThemeResolver
BeanPostProcessor
ServletContextAwareProcessor
BOOT
BeanFactoryPostProcessor used for bootstrapping processing of @Configuration classes.
ConfigurationClassPostProcessor
spring boot 启动容器入口
AnnotationConfigEmbeddedWebApplicationContext
EmbeddedWebApplicationContext
onRefresh(){
createEmbeddedServletContainer();
}
webServer
WebServer
ServletContextInitializer
tomcat 的配置
EmbeddedServletContainerAutoConfiguration
TomcatEmbeddedServletContainerFactory#getEmbeddedServletContainer()
Event
/** ServletWebServerApplicationContext和WebServer初始化完毕之后发布 */
ServletWebServerInitializedEvent
AOP
FactoryBean
AbstractSingletonProxyFactoryBean
CacheProxyFactoryBean
BeanPostProcessor
AbstractAdvisingBeanPostProcessor
AbstractBeanFactoryAwareAdvisingPostProcessor
特点
定位、记载、注册
context
factory
Reader
规则
- Registry
AnnotationConfigRegistry
Configurable包含set,add方法
Aware 通知
Customizer
Factory
ApplicationContext
Adapter
Environment
Callback
Enable
Converter
Holder
Resolver
core class
ApplicationEvent
BeanFactoryPostProcessor
BeanPostProcessor
ResponseEntity
spring 中的数据结构
/** 一个key对应多个list*/
LinkedMultiValueMap