SmartInitializingSingleton:接口里面就一个方法afterSingletonsInstantiated,它是spring容器将所有bean都初始化完成之后,才会去调用,要求实现它接口的bean必须是单例的。
应用场景:可以在服务启动之后去处理一些逻辑,必须初始化缓存,加载配置
XXL-job的实现就是用的这种方法,我们在使用xxl-job的时候,都需要新建一个配置类如下创建
XxlJobSpringExecutor对象:
InitializingBean:接口里面也是提供了一个方法afterPropertiesSet,执行时机是实现这个接口的bean创建初始化之后就会执行afterPropertiesSet这个方法,这时有可能还有其他bean没有初始化完。这个接口可以对当前bean做一些额外处理。
SmartInitializingSingleton:所有bean初始化完成
InitializingBean:当前bean初始化完成