spring 源码总结


Spring 源码
Spring 通过 BeanDefinition 把 Bean 的定义过程和创建过程分开,使得容器的横向扩展 动态创建 bean, 和纵向扩展 对 bean 做增强都很容易实现

动态创建 bean 变得更简单,无需关心 bean 的创建过程,只要定义好 BeanDefinition 注册到容器就好, 
spring 会完成 bean 的创建工作
BeanFactory.beanDefinitionMap
BeanFactory.beanDefinitionNames

Spring 提供了两类接口做扩展
第一类接口用于定义阶段,通过动态注册 BeanDefinition,来实现 Bean 的动态创建, 比如
mybatis 里的 MapperScannerRegistrar 通过 spring 里的 ImportBeanDefinitionRegistrar 接口来完成 mapper 接口的动态代理

Spring 里的 ConfigurationClassPostProcessor 通过 BeanDefinitionRegistryPostProcessor 接口
把基于 java 的 bean 配置,基于注解的 bean 配置, 解析成 beanDefinition,注册到 BeanFactory
@Configuration @ComponentScan @Import @ImportResource @PropertySource @Component @Bean @Conditional
BeanFactory.beanDefinitionMap
BeanFactory.beanDefinitionNames

第二类接口用于创建阶段,对 Bean 做增强, 比如,
SmartInstantiationAwareBeanPostP

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叫我三师弟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值