IoC是什么?
控制反转:面向对象的设计的理念。上层建筑依赖下层建筑
理解:行李箱设计
轮子 --> 底盘 --> 箱体 --> 行李箱
如果改动轮子,则底盘、箱体、行李箱都需要进行调整。
依赖注入:将底层类作为参数传递给上层类,实现上层对下层的“控制”。
四种注入方式
- set注入
- 接口
- 注解
- 构造器
两大容器之BeanFactory和ApplicationContext
BeanFactory:Spring框架的基础设施,面向Spring。
ApplicationContext:面向Spring框架的使用者。高级容器!
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {}
1、继承了BeanFactory,管理、装配Bean
2、继承了ResourcePatternResolver,能够加载资源文件
3、继承了MessageSource,能够实现国际化
4、继承了ApplicationEventPublisher,能够注册监听器,实现监听机制