Spring5高级编程
Spring介绍
Spring的第一个版本于2002年10月份发布,由一个带有易于配置和使用的IoC容器的小型内核组成。多年来,Spring已经成为了J2EE的主要替代品,并且发展成为由许多不同项目组成的成熟技术。
1.1.Spring是什么?
如果想要解释清楚Spring是什么,最难的部分就是对其进行分类。
通常情况下,Spring被描述为构建Java应用程序的轻量级框架。
- Spring可以构建任何的Java应用程序。
- Spring的轻量级体现在,最轻的影响。只需要对Java代码做最低的改动,就可以获得Spring Core带来的好处。
1.1.1.Spring框架的演变
Spring框架源自于Rod Johnson编写的《Expert One-on-One:J2EE Design and Development》一书。在该书的基础上,发布了Spring的第一个公开发布版本:Spring 0.9,提供了Bean配置基础、AOP支持、JDBC抽象框架、抽象事务支持等。
现在Spring5.x是一个主要版本,整个框架代码都基于Java8。
1.1.2.翻转控制或依赖注入
Spring框架的核心是基于控制反转(Inversion of Controller,IoC)的原理。IoC是一种将组件依赖项的创建和管理外部化的技术。
例如:类Foo依赖于类Bar的一个实例来执行某个处理。传统上,可以通过new Bar()或者通过工厂类来获取实例。而如果使用IoC技术,Bar实例则是在运行时通过某个外部进程提供给Foo。这种在运行时注入依赖项的行为,促使Martin Fowler将IoC重命名为更具描述性的依赖注入(Dependency Inject,DI)。
Spring的DI实现基于两个核心的概念:JavaBeans和接口。
- JavaBeans(Pojo)提供了一个创建资源的标准机制,这些资源可以通过多种方式进行配置,例如构造函数和Setter方法。
- 接口和DI是互利技术。接口可以让应用程序更加灵活,而DI可以将基于接口的设计所需的代码量减少到几乎为0。
1.1.3.除了依赖注入
虽然单独使用Spring Core及其先进的DI技术是非常有价值的,但是Spring的真正价值在于其数不胜数的附加功能,所有这些功能都是基于DI精心设计的。
- AOP
- Spring 表达式
- Spring中的验证
- Spring数据库访问
- Spring中的对象/XML映射
- 管理事务
- MVC
- webSocket
- 远程支持
- 邮件支持
- 作业调度支持
- 动态脚本支持
- 简化的异常处理
1.2.Spring项目
Spring社区相当活跃,涌现出了大批优秀的项目。比如Spring Security、Spring Boot、Spring Batch、Spring Integration、Spring Cloud等等。