1.控制反转(IoC)和依赖注入(DI)

IoC(Inversion of Control) 是 Spring 中一个重要的概念,是一种解耦的设计思想、一个原则,而不是一个模式。它主要作用是通过 IOC 容器实现具有依赖关系的对象之间的解耦(IOC 容易管理对象,你只管使用即可),从而降低代码之间的耦合度。

DI(Dependecy Inject)是实现控制反转的一种设计模式,依赖注入就是将实例变量传入到一个对象中去。

2.工厂模式

在 Spring 的 BeanFactory 或 ApplicationContext 中,使用了工厂模式创建 bean 对象。

两种创建 bean 对象方式的区别:

3.单例模式

Spring 中 bean 的默认作用域就是 singleton(单例)的。 除了 singleton 作用域,Spring 中 bean 还有下面几种作用域:

Spring 实现单例的方式:

Spring 通过 **ConcurrentHashMap** 实现单例注册表的特殊方式实现单例模式。 Spring 实现单例的核心代码如下: