简介
学习SpringFramework(简称”SF“)前,需先认识下SpringFramework。
Spring 是于2003年兴起的一个全栈轻量级的 Java 开源框架,由 业界大牛Rod Johnson 创建,使用 Spring 可以更快、更轻松、更安全地进行 Java 编程。Spring是java领域最主流、最活跃的开源框架,没有之一。
Spring 是一个开源体系,目前已高达24个开源项目,常见的 Spring 项目有:Spring Boot,Spring Framework,Spring Data,Spring Cloud,Spring Cloud Data Flow,Spring Security,Spring GraphQL,Spring Session 和 Spring Web Services 等。Spring-Framework 是spring 里面的第一个基础开源框架,也是其他 项目的基础和核心。Spring-Framework是一个基于IOC和AOP的构架多层j2ee系统的框架,它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transaction Management等等。
Spring-Framework 框架于2004年3月份发布了1.0版,一经发布就引起了业界的强烈关注,从而奠定了spring在开源领域的霸主地位。目前已发展到6.0版(如下图)。
设计原则
学习一个框架时,不仅要知道它的功能,还要了解它所遵循的原则。以下是Spring框架的指导原则:
1、在每个层面提供选择:Spring允许您尽可能推迟设计决策。例如,您可以通过配置更改持久化程序而不更改代码。同样,它也适用于许多其他基础设施问题和与第三方API的集成。
2、适应多样化的视角:Spring支持灵活性,并不会对事物应该如何完成持有固定看法。它支持各种应用需求以不同的视角。
3、保持强大的向后兼容性:Spring的演变得到了精心管理,几乎没有版本之间的重大变化。Spring支持一系列精心选择的JDK版本和第三方库,以促进依赖于Spring的应用程序和库的维护。
4、关注API设计:Spring团队花费了大量的时间和精力来制作直观并且可以跨多个版本和多年使用的API。
5、设定高标准的代码质量:Spring框架非常强调有意义、及时、准确的javadoc。它是非常少数没有包之间循环依赖的清晰代码结构的项目之一。
主要技术特征
核心技术: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.
测试驱动: mock objects, TestContext framework, Spring MVC Test, WebTestClient.
数据访问: transactions, DAO support, JDBC, ORM, Marshalling XML.
MVC模式:Spring MVC and Spring WebFlux web frameworks.
内置集成: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
语言支持: Kotlin, Groovy, dynamic languages.
我们目标:阅读分析Spring-Framework源代码,提升自身技术能力。