基于spring扩展几个比较重要的接口介绍

InitializingBean

InitializingBean接口为bean提供了属性初始化后的处理方法,它只包括afterPropertiesSet方法,凡是继承该接口的类,在bean的属性初始化后都会执行该方法。

使用场景

一般配合策略模式使用

BeanFactoryPostProcessor(BeanDefinitionRegistryPostProcessor  子类)

允许自定义修改应用程序上下文的bean定义,调整上下文的基础bean工厂的bean属性值。应用程序上下文可以在其bean定义中自动检测BeanFactoryPostProcessor bean,并在创建任何其他bean之前先创建BeanFactoryPostProcessor。BeanFactoryPostProcessor可以与bean定义交互并修改bean定义,但绝不能与bean实例交互。这样做可能会导致bean过早实例化。

使用场景

修改Bean定义或者创建Bean定义(BeanDefinition)编程示创建Bean

BeanPostProcessor

bean后处理器允许自定义修改spring bean factory创建的新bean实例。如果你想在Spring容器完成实例化、配置和初始化bean之后实现一些定制逻辑,我们可以插入一个或多个BeanPostProcessor实现

使用场景

实例化Bean后处理后置一些逻辑操作,比如记录时间,操作数据库等

FactoryBean

产生Bean的另一种方式,实现该接口,可以生产Bean对象,实现该接口的类,默认会创建两个Bean实例,一个是本身的对象实例,一个getObject返回的对象实例,如果要需要通过BeanName获取本身实例对象需要加上&符号,否则默认获取的是getObject对象实例

使用场景

可以利用该接口特性动态代理接口,如mybatis-spring中MapperProxyFactory

你可能感兴趣的:(基于spring扩展几个比较重要的接口介绍)