Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

1、Spring历史

Spring诞生之初是个Java工具类库,还称不上框架。最初由 Rod Johnson 编写,解决Java EE开发过程中遇到的一些典型问题。并于 2003 年 6 月在 Apache 2.0 许可下首次发布。官方网站是https://spring.io

1.1 最初名字interface21

Spring最初的名字叫Interface21。这个名字可以追溯到 2002 年底。2002 年 11 月,Rod Johnson出版了《 Expert One-on-One J2EE Design and Development》。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

这本书附有 30,000 行框架代码,这占了我一年中全职写这本书的大部分时间。 Spring 框架的许多基本概念都在那里:一个已经有能力的 IoC 容器,具有 BeanFactory 和 ApplicationContext 以及复杂的依赖注入(尽管这个名字直到 2003 年底才被创造出来); 带有 Controller、HandlerMapping 和朋友的 Spring MVC 的早期形式; 模板概念; JdbcTemplate 和与技术无关的数据访问异常的概念。

这些例子代码,也需要一个名字。 在书中,它被称为“Interface21 框架”(当时它使用 com.interface21 包名称),但这并不是激发社区灵感的名称。


1.2为什么改名叫Spring?

本书出版后不久,开发人员 Juergen Hoeller 和 Yann Caroff 说服 Rod Johnson 创建了一个基于基础架构代码的开源项目。 Rod、Juergen 和 Yann 于 2003 年 2 月左右开始在该项目上进行合作。Yann 为新框架创造了“Spring”这个名称。 根据 Rod 的说法,Spring春天代表了传统 J2EE 的“冬天”之后的新开始!

幸运的是,Yann 提出了一个建议:“Spring”春天。 他的理由是与自然的联系(注意到 Rod Johnson在 2000 年徒步到珠穆朗玛峰大本营); Spring 代表了在传统 J2EE 的“冬天”之后的新开始。 我们认识到这个名字的简洁和优雅,并很快就同意了。

Yann 最终停止为开源做贡献,专注于将演奏音乐作为一种爱好并拥有正常的社交生活。 当然,Juergen 挺身而出,为使 Spring 成为今天的力量做出了决定性的贡献。 再过几个月,主要的 Spring 团队聚集在一起,该项目于 2003 年 6 月公开,并推动了 1.0。

Spring目前有Pivotal 公司支持,部分走开源商业化路线。

1.3目标:简化Java应用开发

Spring主要目标是简化Java应用的开发工作, 是目前最流行的开源Java企业级应用开发平台,包括了许多框架、资源、工具。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

可以说事实上的Java开发,大部分都是Spring平台作为基础。包括最著名的微服务框架Spring Cloud。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

今天再看Spring,已经是平台级别的生态技术体系了,已经不是单一的框架了。准确来说,Spring是一个完善的Java应用开源技术平台,包括许多框架资源,每个框架解决不同的技术问题。

Spring Framework 的核心功能可用于开发任何 Java 应用程序,但也有一些扩展可用于在 Java EE 平台之上构建 Web 应用程序。 Spring 框架旨在通过启用基于 POJO 的编程模型使 J2EE 开发更易于使用并促进良好的编程实践。

Spring 是最流行的企业 Java 应用程序开发框架。 全球数以百万计的开发人员使用 Spring Framework 来创建高性能、易于测试和可重用的应用代码。

2、Spring Framework

Spring Framework 是Spring体系的一部分,中文称呼叫:Spring框架。可以理解为一个工具集合。

为基于 Java 的现代企业应用程序提供了一个全面的编程和配置模型——在任何类型的部署平台上。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

Spring 框架包括了应用程序级别的基础设施支持:Spring 专注于企业应用程序的主要方面,例如依赖注入DI,因此团队可以专注于应用程序级别的业务逻辑,而无需与特定部署环境建立不必要的联系。

参考文档的这一部分涵盖了 Spring 框架中绝对不可或缺的所有技术。

3、Spring 核心部分

  1. 核心技术: 依赖注入, 事件, 资源, i18n, validation, data binding, type conversion, SpEL, AOP.
  2. Testing测试: mock objects, TestContext framework, Spring MVC Test, WebTestClient.
  3. Data Access数据访问: transactions, DAO support, JDBC, ORM, Marshalling XML.
  4. Spring MVC and Spring WebFlux web 框架.
  5. Integration集成: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
  6. Languages语言: Kotlin, Groovy, dynamic languages.
  7. Spring Security
  8. Spring Boot 最新的Java应用开发框架
  9. Spring Data
  10. Spring Cloud 最流行、最成熟、最完善的微服务框架


3.1Dependency Injection (DI)

其中最重要的是 Spring Framework 的控制反转 (IoC) 容器。 在对 Spring Framework 的 IoC 容器进行彻底处理之后,紧随其后的是对 Spring 的面向切面编程 (AOP) 技术的全面介绍。

3.2 Aspect Oriented Programming (AOP)

Spring 框架有自己的 AOP 框架,AOP叫面向切面编程Aspect Oriented Programming (AOP)。在概念上很容易理解,并且成功地解决了 Java 企业编程中 80% 的 AOP 需求关注点。请求拦截,并扩展。本质上提供扩展但是做到已有代码的最小化影响。


还提供了 Spring 与 AOP开源框架AspectJ 集成(目前最丰富的 — 在功能方面 — 当然也是 Java 企业领域中最成熟的 AOP 实现)。


4 Spring Boot快速开发

Spring Boot本意是Spring应用快速入门, 基于Spring平台,目标是简化Java企业级应用开发,比如网站、比如API、定时任务程序等等。 它由 Pivotal Team 开发,用于构建独立和生产就绪的 spring 应用程序。阿里云开发者学院也有我主讲的Spring Boot实战课程。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

  • 简化创建独立的 Spring 应用程序
  • 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文件)
  • 提供精简的“入门”pom依赖项配置
  • 尽可能自动配置 Spring 和 3rd 方库
  • 提供生产就绪功能,例如指标、健康检查和外部化配置
  • 完全无需代码生成,无需 XML 配置

阿里云开发者学院每年都会有Java课程推出,更新到最新版本。Java Spring Boot 2.5开发训练营。之前配套的电子书也已经发布,可以下载。


5 Spring Cloud微服务

最早、最流行、最成熟、最完善的微服务框架。诞生于Spring 平台之上,提供微服务的一套解决方案。最早又Neffilix贡献核心代码,后面Pivotal,阿里巴巴等公司陆续又贡献了许多微服务框架,补充到这个大家族中。

我们再阿里云开发者学院也有一套微服务课程。

https://developer.aliyun.com/learning/course/60

Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。

Spring Boot 2.6实战开发(1):Spring Framework 核心编程与Spring名字由来

本次课程涵盖最新版本的Spring Cloud 微服务架构体系, 微服务架构模式、算法与典型场景、框架、优缺点,Spring Cloud 2020的重大变化、扩展Netflix、Spring Cloud Alibaba阿里巴巴体系,Dubbo等架构选型对比,淘宝微服务架构案例。

重点讲解:服务治理、注册发现、熔断限流、网关代理、链路追踪、安全监控等核心问题,循序渐进,概念为辅、实战为主,涵盖经典面试题。让您成为合格的微服务架构师。



上一篇:重磅 | 死磕 Elasticsearch 方法论认知清单(2021年国庆更新版)


下一篇:巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力!