Spring七大模块:
Spring Core//核心容器,基本功能
Spring 上下文 //提供上下文信息
Spring AOP//将面向方面的编程功能集成到Spring框架中
Spring DAO//提供有意义的异常层次结构,管理异常的处理和不同数据库提供供应商抛出的错误信息
Spring ORM//ORM的对象映射工具,插入若干个Object/Relation Mapping框架
Spring Web//基于web的应用程序提供上下文
Spring MVC//MVC框架是一个全功能的Web应用程序的MVC实现,高度匹配的框架
Spring控制反转IoC:
IoC:由容器控制程序之间的关系,由容器动态的将某种依赖关系注入到组件中
三种依赖注入类型:
- 通过接口注入
- 通过setter方法注入(Spring 推荐的方式)
- 通过构造方法来注入类
BeanFactory:Spring作为IoC容器的基础,Spring框架使用JavaBean属性和配置数据来指出必须设置的依赖关系
- 单态模型:提供了具有特定名称的对象的共享实例。
- 原型模型:确保每次检索都会创建单独的对象模型。
用户不用实例化BeanFactory,Spring框架代码会做这件事
一个基本的BeanFactory配置由一个或多个它所管理的Bean定义组成
BeanDefinition:classname,Bean行为配置元素,需要属性,相关的其他Bean
Bean类:
- 通过构造函数创建Bean
- 通过静态工厂方法创建Bean
- 通过实例工厂方法创建Bean
在管理Bean的BeanFactory或ApplicationContext中必须是唯一的
在部署模式时,当被定义为singletton时只有一个共享的实例存在,若被定义为non-singletton或prototype时,Bean的每次请求都会创建一个新的Bean实例
context包添加了ApplicationContext提供一种更加面向框架的方式增强了BeanFactory的功能;MessageSource接口
Observer设计模式:
上下文中部署了一个实现了ApplicationListener接口的Bean,每一次ApplicationEvent发布到ApplicationContext时,Bean将会被通知
Spring 三种标准的事件:ContextRefreshedEvent,ContextClosedEvent,RequestHandledEvent