《springboot/spring扩展点系列之smartinitializingsingleton - 第436篇
时间: 2023-05-08 11:59:51 浏览: 192
本文介绍的是Spring框架中SmartInitializingSingleton接口的使用。SmartInitializingSingleton接口是Spring框架提供的一个扩展点,可以在BeanFactory加载所有单例Bean并完成初始化之后被回调。这个回调对于那些需要在所有单例Bean初始化后执行一些特定操作的组件是非常有用的。
本文首先介绍了SmartInitializingSingleton接口的定义和用法,然后讨论了两个例子来显示如何使用这个接口。第一个例子是一个自定义的MetricsRegistry组件,它维护了一个所有metrics的列表。在应用程序启动时,这个组件会被回调,然后会迭代列表中的所有metrics,将它们注册到一个全局的MetricsRepository中。
第二个例子展示了SmartInitializingSingleton接口的延迟初始化功能。在这个例子中,一个非常昂贵的DAO对象不是在BeanFactory加载所有Bean时创建的,而是在第一次使用它时进行创建。这个DAO对象实现SmartInitializingSingleton接口,当它被创建时就被初始化,所以它可以控制延迟初始化的行为。
总的来说,SmartInitializingSingleton接口对于那些需要在所有单例Bean初始化后执行一些特定操作的组件非常有用。使用这个接口,开发人员可以灵活地控制组件的初始化行为,从而提高应用程序的性能和可维护性。
阅读全文