1. // bean 创建后的回调
    2. // Trigger post-initialization callback for all applicable beans...
    3. for (String beanName : beanNames) {
    4. Object singletonInstance = getSingleton(beanName);
    5. if (singletonInstance instanceof SmartInitializingSingleton) {
    6. SmartInitializingSingleton smartSingleton = (SmartInitializingSingleton) singletonInstance;
    7. if (System.getSecurityManager() != null) {
    8. AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
    9. smartSingleton.afterSingletonsInstantiated();
    10. return null;
    11. }, getAccessControlContext());
    12. }
    13. else {
    14. smartSingleton.afterSingletonsInstantiated();
    15. }
    16. }
    17. }