美文网首页
spring扩展点简述

spring扩展点简述

作者: wei_lu_lu | 来源:发表于2019-01-18 19:55 被阅读0次

spring里使用了很多设计模式,也遵循着软件设计里的‘开闭’原则:

  • 保证对修改关闭,外部无法修改spring的整体运行流程
  • 保证对扩展开放,spring提供了指定的扩展点,以适应特定场景需求
    spring提供的扩展点有:
    InitializingBean和DisposableBean
  • InitializingBean是一个接口,提供了一个唯一的方法afterPropertiesSet()。这个方法是在Bean属性都设置完毕后调用afterPropertiesSet()方法做一些初始化的工作
  • DisposableBean也是一个接口,提供了一个唯一的方法destory()。这个方法是在Bean的生命周期结束后执行
    两接口可以配合init-method、destory-method使用,接口执行顺序优先于配置
    BeanNameAware、ApplicationContextAware和BeanFactoryAware
  • 实现BeanNameAware接口的Bean,在Bean加载的过程中可以获取到该Bean的id
  • 实现ApplicationContextAware接口的Bean,在Bean加载的过程中可以获取到Spring的ApplicationContext,这个尤其重要,ApplicationContext是Spring应用上下文,从ApplicationContext中可以获取包括任意的Bean在内的大量Spring容器内容和信息
  • 实现BeanFactoryAware接口的Bean,在Bean加载的过程中可以获取到加载该Bean的BeanFactory
    FactoryBean
  • 可以个性化地定制自己想要实例化出来的Bean,方法就是实现FactoryBean接口。
    BeanPostProcessor
    之前的InitializingBean、DisposableBean、FactoryBean包括init-method和destory-method,针对的都是某个Bean控制其初始化的操作,而BeanPostProcessor可以针对每个Bean的生成前后做一些逻辑操作,这个接口里有两个方法:
  • postProcessBeforeInitialization:在初始化Bean之前
  • postProcessAfterInitialization:在初始化Bean之后
    BeanFactoryPostProcessor
    Spring允许在Bean创建之前,读取Bean的元属性,并根据自己的需求对元属性进行改变,比如将Bean的scope从singleton改变为prototype,最典型的应用应当是PropertyPlaceholderConfigurer,替换xml文件中的占位符,替换为properties文件中相应的key对应的value
    InstantiationAwareBeanPostProcessor
  • 上面的BeanPostProcessor是对bean进行初始化。初始化的过程是一个赋值的过程,即调用Bean的
    setter,设置Bean的属性
  • InstantiationAwareBeanPostProcessor是对bean进行实例化。实例化的过程是一个创建Bean的过程,即调用Bean的构造函数,单例的Bean放入单例池中
    一般会继承InstantiationAwareBeanPostProcessorAdapter这个抽象类来实现

相关文章

  • 2021-03-14

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

  • 2021-03-14-1

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

  • Spring ApplicationContextAware扩展

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

  • Spring SpringFactoriesLoader扩展最佳

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

  • 2021-03-13

    请求链接,稍后更新 扩展点简述 扩展点的生命周期及扩展点的执行时机 扩展点的作用 扩展点实战 更多Spring扩展...

  • spring扩展点简述

    spring里使用了很多设计模式,也遵循着软件设计里的‘开闭’原则: 保证对修改关闭,外部无法修改spring的整...

  • Spring BeanPostProcessor最佳实践

    扩展点简述 Factory hook that allows for custom modification of...

  • Spring BeanFactoryPostProcessor最

    扩展点简述 Factory hook that allows for custom modification of...

  • Spring扩展点

    IoC容器扩展点 BeanDefinitionRegistryPostProcessor BeanFactoryP...

  • spring扩展点

    BeanDefinition GenericBeanDefinition : 通用的bean实现,自2.5以后新加...

网友评论

      本文标题:spring扩展点简述

      本文链接:https://www.haomeiwen.com/subject/fskodqtx.html