SmartInitializingSingleton接口具有什么功能呢?
下文笔者讲述"SmartInitializingSingleton接口"的功能简介说明,如下所示
SmartInitializingSingleton接口简介
SmartInitializingSingleton接口的作用 当IOC容器加载完 所有的单例Bean后 可运行接口中的方法
SmartInitializingSingleton的定义
public interface SmartInitializingSingleton { void afterSingletonsInstantiated(); } for (String beanName : beanNames) { Object singletonInstance = getSingleton(beanName); //如果实现SmartInitializingSingleton接口,则执行其afterSingletonsInstantiated方法 if (singletonInstance instanceof SmartInitializingSingleton) { SmartInitializingSingleton smartSingleton = (SmartInitializingSingleton) singletonInstance; if (System.getSecurityManager() != null) { AccessController.doPrivileged((PrivilegedAction<Object>) () -> { smartSingleton.afterSingletonsInstantiated(); return null; }, getAccessControlContext()); } else { smartSingleton.afterSingletonsInstantiated(); } } }
SmartInitializingSingleton的使用
package com.jd.startUpCompletedRunMethod; import org.springframework.beans.factory.SmartInitializingSingleton; public class RunMethod implements SmartInitializingSingleton { @Override public void afterSingletonsInstantiated() { System.out.println("Spring加载完毕====> class:"+this.getClass().toString()); } } 将这个 bean交给 Spring管理 Spring初始化完毕后,则会运行 afterSingletonsInstantiated 中的内容
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。