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

			
               
               
               
               
          
