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
网友评论