1.spring中Bean的作用域有五种:singleton(单例模式,每次调用的都是同一个Bean),prototype(每次从容器中调用,都会创建一个新的实例),request(每次HTTP请求都会创建一个新实例),session(同一个HttpSession共享同一个实例,不同的HttpSession使用不同的Bean),globalSession(全局的web域共享一个实例,类似于servlet中的application)
bean的加载过程:
具体加载过程:
2.spring中singleton单例的底层实现:底层维护着一个单例注册表,这个注册表的缓存是HashMap对象。
源码:
public abstract class AbstractBeanFactory implements ConfigurableBeanFactory{
/**
* 充当了Bean实例的缓存,实现方式和单例注册表相同
*/
private final Map singletonCache=new HashMap();