Spring中常用的类

  1. BeanPostProcessor(后置处理器)
  • spring提供给程序员的一个扩展点,实现BeanPostProcessor可以插手bean的实例过程,实例化之后,在bean被放到spring的bean容器管理前干活
    • 经典场景@PostConstruct、aop
  1. BeanFactoryPostProcessor
  • springBean容器当中,任意的一个bean被new出来之前执行,针对beanFactory来建设
    • 经典场景:ConfigrationClassPostProcessor#postProcessBeanFactory这个配置类,针对配置类加上cglib代理
  1. BeanDefinitionResgistryPostProcessor(BeanFactoryPostProcessor的子类)
  • 在BeanFactoryPostProcessor 执行,因为底层源码中先遍历BeanDefinitionResgistryPostProcessor(有系统提供的,还有自定义的,先执行系统自定义的)
    • 经典场景:ConfigrationClassPostProcessor,扫描、3种import的扫描,@bean的扫描,判断配置类是不是一个完整的配置类(full,lite。cglib和非cglib),解析配置类
  1. importSelector
  • 通过这个方法selectImports返回一个类名(全名),把它变成bd,动态添加bd(这个bd是死的),也可以动态扫描,变成bd
  1. ImportBeanDefinitionRegistrar
  • 功能与importSelector大致相同,但是ImportBeanDefinitionRegistrar会提供给我们spring的注册器register,可以让我们手动修改bd,注册到spring容器中
posted @ 2021-03-09 18:15  彼时岸边  阅读(607)  评论(0编辑  收藏  举报