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 中的内容
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


