优点:线程安全,原子性、可见性、有序性得到保证
    缺点:性能不好,消耗的资源较多

    1. public class ContainerSingleton {
    2. private ContainerSingleton() {
    3. }
    4. private static Map<String, Object> ioc = new ConcurrentHashMap<>();
    5. public static Object getBean(String className) {
    6. synchronized (ioc) {
    7. if (!ioc.containsKey(className)) {
    8. Object obj = null;
    9. try {
    10. obj = Class.forName(className).newInstance();
    11. ioc.put(className, obj);
    12. } catch (Exception e) {
    13. e.printStackTrace();
    14. }
    15. return obj;
    16. }
    17. return ioc.get(className);
    18. }
    19. }
    20. }