Spring常用扩展接口总结

前言

Spring源码学习笔记,Spring常用扩展接口总结,错误之处欢迎指正,共同学习

介绍

Spring 提供了大量的可扩展接口。因此了解这些接口对于我们定制自己的功能,熟练使用 Spring 非常重要。

常用扩展

1.FactroyBean
2.BeanPostProcess
3.InstantiationAwareBeanPostProcessor
4.BeanNameAware、ApplicationContextAware 和 BeanFactoryAware
5.BeanFactoryPostProcessor
6.InitialingBean、DisposableBean
--------------------------------------------------------------------
1.FactroyBean 个性化地定制自己想要实例化出来的Bean,比如AOP的实现
    a.getObject() 方法是最重要的,控制Bean的实例化过程
    b.getObjectType()方法获取接口返回的实例的class
    c.isSingleton()方法获取该Bean是否为一个单例的Bean

2.BeanPostProcess 在每个Bean初始化前后做操作。

3.InstantiationAwareBeanPostProcessor 在Bean实例化前后做一些操作。
    a.实例化在初始化之前执行
    b.通常不会直接实现 InstantiationAwareBeanPostProcessor 接口,而是会采用继承 InstantiationAwareBeanPostProcessorAdapter 这个抽象类的方式来使用。

4.BeanNameAware、ApplicationContextAware 和 BeanFactoryAware 针对bean工厂,可以获取上下文,可以获取当前bena的id。
    a.从上下文获取bean时使用,可以让实现类或子接口的实现类注入ApplicationContext,获取上下文的信息。很多项目中都使用此接口做了Spring的工具类。

5.BeanFactoryPostProcessor Spring允许在Bean创建之前,读取Bean的元属性,并根据自己的需求对元属性进行改变,比如将Bean的scope从singleton改变为prototype。
    a.BeanFactoryPostProcessor的执行优先级高于BeanPostProcessor
    b.BeanFactoryPostProcessor的 postProcessBeanFactory() 方法只会执行一次,携带了每个bean的基本信息

6.InitialingBean 在属性设置完毕后做一些自定义操作 DisposableBean 在关闭容器前做一些操作。
    a.InitialingBean 实现 afterPropertiesSet()方法
    b.DisposableBean 实现 destory() 方法

总结

通过了解 Spring 的扩展接口,我们可以基于 Spring 做一些除了简单注入之外的定制功能。同时,我们也发现 Spring 的扩展性非常高,符合设计模式中的开闭原则,对修改关闭,对扩展开放。我们在以后的开发工作中也可以借鉴 Spring 的设计思想,让程序更加优雅。

------本文结束感谢阅读------
显示评论
0%