Spring
Spring是一个轻量级的开源框架,为了解决企业应用开发的复杂性而创建,但现在已不止于企业应用。是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架
优点:
开发应用简单、方便、快捷
作用:
- 容器
- 提供了对多种技术的支持:JMS、MQ支持、UnitTest。。。
- AOP(事务管理、日志等)
- 提供了众多方便应用的辅助类(JDBC Template等)
- 对主流框架(Hibernate等)提供了良好的支持
试用范围:
- 构建企业应用(SpringMVC + Spring + Hibernate/ibatis)
- 单独使用Bean容器(Bean管理)
- 单独使用AOP进行切面处理
- 其他的Spring功能,如:对消息的支持等
- 在互联网中的应用
框架
特点:
半成品,封装了特定的处理流程和控制逻辑,成熟的、不断改进的软件
框架一般是封装了逻辑、高内聚的。类库则是松散的工具组合,框架专注于某一领域,类库则是更通用的。
软件系统日趋复杂,框架的使用使得代码重用度高,开发效率和质量得到提升
Ioc及Bean容器
面向接口编程:
结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能接口,各层间仅依赖接口而非实现类。因此,接口的实现类的变动不影响各层间的调用。“面向接口编程”中的“接口”是用于隐藏具体实现和实现多态性的组件。
IOC、DI
IOC:控制反转,控制权的转移,应用程序不负责依赖对象的创建和维护,而是由外部容器来创建和维护。DI(依赖注入)是其一种实现方式,创建对象并且组装对象之间的关系。
Bean容器初始化
基础:两个包
- org.springframework.beans
- org,springframeworl.context
- BeanFactory提供配置结构和基本功能,加载并初始化Bean
- ApplicationContext保存了Bean对象在Spring中被广泛使用
方式:ApplicationContext:
- 本地文件
- Classpath
- Web应用中依赖servlet或者listener
Spring注入
Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为。常用的有设值注入和构造注入这两种方式。
Bean!!!
Bean配置项
一些常用的
项 | 意思 |
---|---|
Id | 在整个IOC容器中这个Bean的唯一标识 |
Class | 具体要实例化的类 |
Scope | 作用域 |
Constructor arguments | 构造器参数 |
Properties | 属性 |
Autowiring mode | 自动装配模式 |
lazy-initialization mode | 懒加载模式 |
Initialization/destruction method | 初始化和销毁模式 |
Bean的作用域
Bean的生命周期
初始化和销毁都各有两种方式,还有一种是全局初始化和全局销毁
疑问
@SuppressWarnings("unchecked"):屏蔽某些编译时的警告信息
JUnit中有一个默认Runner,即BlockJUnit4ClassRunner,如果你没有指定,那么系统自动使用默认Runner来运行你的代码。