在内存中拷贝对象,比new性能高
进入getBean():
ApplicationContext a=new ClassPathXmlApplicationContext("application.yml");
a.getBean("1");
此getBean()为BeanFactory接口提供的方法:
BeanFactory接口的抽象实现类,实现getBean()方法:
getBean()方法核心为getBeanFactory(),是抽象方法:
getBeanFactory()的具体实现:
调用生成的工厂的getBean(name):
doGetBean()方法判断原型还是单例方式:
createBean()方法创建bean,根据原型/单例对创建的bean进行处理,单例模式将bean对象放进缓存(Map)在用的时候从缓存取来保证单例的,原型模式将beanName放进beanNameSet: