Spring的IOC

IOC:Inversion Of Control 控制反转,从理论上来说是一种设计模式:程序运行过程中所需要的资源由容器统一生成并管理起来,此乃控制。不需要客户程序自己创建,而是从IOC容器中获取,此乃反转;

DI:Denpency Injection 依赖注入,就是对IOC概念中的“不需要客户程序自己创建,而是从IOC容器中获取”的具体实现;

Spring 的IOC容器:

有两个 BeanFactory 和 ApplicationContext

1) BeanFactory 管理基础类,提供了完整的IOC容器服务支持。它是一个工厂,管理所有的Spring Bean的初始化创建和管理它们的生命周期。

2) ApplicationContext 成为Spring应用上下文,它是BeanFactory的子接口。不仅提供了BeanFactory的功能,还支持国际化、资源访问、事件传播等方面的额外支持。

两者的使用场景:如果一个Bean的某一个属性还没又被注入,此时通过BeanFactory.getBean方法获取Bean会抛出异常。而ApplicationContext在初始化的时候自检,有检查所依赖的属性是否已经注入。实际开发中,通常使用ApplicationContext。只有在资源较少的时候才考虑使用BeanFactory。

你可能感兴趣的:(Spring的IOC)