Spring概述 ##Spring框架是什么? Spring Framework轻量级、一站式、开发框架
轻量级是指相对于老的J2EE当中的EJB 一站式是指集成了很多的各种开发工具,提供数据访问,Web开发工具,整合了数据访问、Web开发的一些框架。例如Hibernate、
Spring历史
- 2002 - Rod Johnson, Apache 2.0 License
- 2004 1.0 - 核心功能 IOC AOP
- 2006 2.0 - AOP性能提升
- 2007 2.5 - Annotation(注解)支持
- 2009 3.0
- 2013 4.0 - Java 8 支持
为什么要用Spring框架
Spring核心技术
- Inversion of Control(IoC,控制反转)
- Aspect-Oriented Programming (AOP,面向切面编程)
IoC
- Inversion of Control(IoC,控制反转)
- 控制什么?谁来控制?
现实当中的例子
- 控制什么?
- 刀口的形状
- 谁来控制?
- 制造商
- 使用者
当发生控制反转后,是由使用者进行控制,而不是由制造商进行控制
- 使用者
代码例子
如果我们需要十字刀的对象,当前的模式
- 控制什么?
- 对象的依赖 - Dependency Injection(DI,依赖注入)
- 谁来控制?
- IoC之前是由,对象的提供者控制
- IoC之后是由,对象的使用者? - 交给IoC容器
Non-Ioc vs. IoC
AOP
- Aspect-Oriented Programming (AOP,面向切面编程)
- 什么是切面?
AOP示例
添加了日志代码就为如下内容
更多的业务
修改业务逻辑代码并不影响非业务逻辑代码
AOP:业务逻辑与非业务逻辑分离 日志、安全、事务都可以作为切面
Spring Framework模块
IoC容器
- 对象创建、装配
- 对象声明周期管理
- 上下文环境
AOP
- AOP实现
- AspectJ支持
数据访问(Data Access)
- JDBC支持
- 连接管理
- 异常处理
- 事务管理
- ORM整合
Web框架
- Servlet Based MVC
- Web工具支持 - 上传下载
- 模版支持
Spring其它项目
Why Spring framework?
- 开发工具
- 框架整合
- 开发效率