spring的拓展点之-InitializingBean
一:有什么用
InitializingBean是spring提供的一个初始我们bean熟悉的方法,我们可以直接看看源码注释。
我们看这个接口上的注释大概意思就是:
当我们需要初始化我们bean中的一些参数,或者校验一些参数的时候的时候就可以通过实现该接口的afterPropertiesSet
方法,初始化bean中属性。同时也说明了,初始化bean属性的还可以通过配置init方法。
通过源码的注释我们大致知道这个接口的功能了。实现这个接口和配置init方法有什么好处呢?,这个也就是不需要配置参数了,这个接口再一些框架和spring整合时候用的比较多,这样就不需要用户去配置了。
二:在哪里执行
查看源码的AbstractAutowireCapableBeanFactory
这个类中的configureBean
方法中,再填充了必要的注入属性后,执行initializeBean
初始化bean的方法。
进入initializeBean
方法
通过看注释和源码我们知道这个就是执行init方法和afterPropertiesSet
方法的地方。
总结来说就是给我们提供一个初始化一些bean的属性值的地方
三:在哪里用了
这个接口比较简单这里不进行代码验证了。我们可以看看mybatis和spring整合的SqlSessionFactoryBean
这个类。
我们看实现的afterPropertiesSet
方法。
这个方法就是进行属性初始化的校验和sqlSessionFactory属性赋值。