Spring Code

问题:
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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值