spring 源码之核心类


--------------------------------------------------
Spring 主要是管理 bean,包括配置,创建,装配,作用域,生命周期及各种增强,各种扩展
--------------------------------------------------
通过 BeanDefinition 把 bean 的定义和 bean 的创建分开,扩展很容易
--------------------------------------------------
只要定义好 BeanDefinition , spring 就会创建对应的 bean
------------------------------------------------
BeanFactoryPostProcessor
容器初始化的时候 实例化 Bean 之前 读取/修改 Bean 的信息,实现 bean 的动态代理
是扩展 spring 容器功能的重要接口
---------------------
ConfigurationClassPostProcessor 通过 BeanDefinitionRegistryPostProcessor 实现 bean 的动态注册
把基于 java 的 bean 配置,基于注解的 bean 配置, 解析成 beanDefinition,注册到 BeanFactory
@Configuration @ComponentScan @Import @ImportResource @PropertySource @Component @Bean @Conditional
BeanFactory.beanDefinitionMap
BeanFactory.beanDefinitionNames
------------------------------------------------
调用 ImportBeanDefinitionRegistrar 实现 bean 的动态注册
------------------------------------------------
@EnableAspectJAutoProxy 通过 ImportBeanDefinitionRegistrar 接口实现注解 aop 入口类
AnnotationAwareAspectJAutoProxyCreator 的动态注册
---------------------
MapperScannerRegistrar
生成 mybatis mapper 接口的动态代理
--------------------------------------------------
BeanPostProcessor 是 Bean 的后置处理器,大部分在 Bean 的初始化方法 [ InitializingBean 以及 init-method ] 前后执行
支持 @PostConstruct, @PreDestroy, @Resource, @Value
---------------------------------
AutowiredAnnotationBeanPostProcessor 
  @Autowired 注解的注入
---------------------------------
SmartInstantiationAwareBeanPostProcessor 解决循环依赖
  ---------------------
  getEarlyBeanReference 
  解决循环依赖时,从三级缓存里拿bean
  ---------------------
  determineCandidateConstructors 
  有 @Autowired 注解的构造函数,在实例化之前执行
  ---------------------
DestructionAwareBeanPostProcessor
    postProcessBeforeDestruction
---------------------------------
CommonAnnotationBeanPostProcessor  
@PostConstruct @PreDestroy @Resource
---------------------------------
InstantiationAwareBeanPostProcessor
  postProcessProperties di
--------------------------------------------------
BeanDefinition
id, class,scope,依赖的 bean,是否是单例类,是否是懒加载, 
父子 bean, 工厂方法,工厂 bean, init-method, destroy-method
--------------------------------------------------


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三师弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值