Spring 中的核心组件:
- IOC 容器(控制反转容器):对象创建(工厂创建对象),对象存储,对象依赖管理(为对象的属性赋值)。
- MVC 组件(重点解决与表示层通讯问题)
- AOP 组件(重点解决对象功能扩展问题)
- DATA 组件(整合JDBC,MyBatis,JPA,....)
IOC全称是Inversion of Control,被译为控制反转,是指程序中获取对象的方式发生反转,由最初的new方式创建,转变为由第三方框架创建、注入(DI),它降低了对象之间的耦合度。(IOC要管理对象以及对象之间的依赖关系)。
可以从以下角度理解控制反转:
1工厂创建对象(对象的创建)
2工厂把对象存储到(IOC)容器(Map集合)里面去管理(对象的管理)
3使用对象从(IOC)容器来获取(对象的使用)
容器-存储对象的对象(一般是Map)
SpringIOC容器是IOC机制的一种实现,同时IOC也是Spring框架的基础和核心,它借助DI(Dependency Injection)实现。
Spring IOC是实现了控制反转功能的一个容器对象,它要通过这个对象实现对象之间依赖关系的管理。目的主要实现对象之间的解耦合。以提高程序的可维护性和可扩展性。Spring中的IOC功能借助DI(依赖注入)来实现。
面向对象有一个设计原则叫高内聚低耦合。耦合性越强,对象变化就会越复杂。
这个组件实现了三个核心功能:
1.对象的创建(通过工厂创建对象)
2.对象的存储(map)(用容器存储对象)
3.对象的管理(依赖查找,依赖注入)
如何将对象交给Spring管理
1以xml的方式对此对象进行描述
2以注解的方式对此对象进行描述
核心服务:更加科学地整合资源、使用资源
核心特性:控制反转-实现对象的科学控制(因为通过对象解决问题,对象占用资源,资源又是有限的,资源用不好就会浪费。所以把对象的控制权由程序员交给别IOC组件处理)
核心手段:对象创建手段(工厂创建对象),对象存储(List?set?map?array?)手段,对象的管理(管理对象的生命周期和对象之间的依赖关系)手段
核心目的:更好地对系统进行粒度控制