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

简介: Spring Boot 2.6实战开发系列文章(1):介绍Spring Framework 核心编程知识,Spring生态体系,Spring最初名字interface21由来。Spring Boot 、Spring Cloud微服务架构发展关系,个人学习计划。

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》。

这本书附有 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企业级应用开发平台,包括了许多框架、资源、工具。

image.png

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

今天再看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 框架包括了应用程序级别的基础设施支持: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 应用程序
  • 直接嵌入 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、谷歌、京东、百度、滴滴等。

image.png

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

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



相关文章
|
14天前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
334 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
195 0
|
21天前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
22天前
|
XML 安全 Java
使用 Spring 的 @Aspect 和 @Pointcut 注解简化面向方面的编程 (AOP)
面向方面编程(AOP)通过分离横切关注点,如日志、安全和事务,提升代码模块化与可维护性。Spring 提供了对 AOP 的强大支持,核心注解 `@Aspect` 和 `@Pointcut` 使得定义切面与切入点变得简洁直观。`@Aspect` 标记切面类,集中处理通用逻辑;`@Pointcut` 则通过表达式定义通知的应用位置,提高代码可读性与复用性。二者结合,使开发者能清晰划分业务逻辑与辅助功能,简化维护并提升系统灵活性。Spring AOP 借助代理机制实现运行时织入,与 Spring 容器无缝集成,支持依赖注入与声明式配置,是构建清晰、高内聚应用的理想选择。
257 0
|
2月前
|
Java API 开发者
Spring 控制反转与依赖注入:从玄学编程到科学管理
在传统开发中,手动`new`对象导致紧耦合、难以维护和测试。控制反转(IoC)将对象创建交给框架,实现解耦。Spring通过IOC容器自动管理对象生命周期,开发者只需声明依赖,无需关心创建细节。依赖注入(DI)是IoC的具体实现方式,支持构造器、Setter和字段注入。构造器注入推荐使用,保证依赖不可变且易于测试。对于多个同类型Bean,可用`@Qualifier`或`@Primary`解决冲突。此外,Spring还支持依赖查找(DL),开发者主动从容器获取Bean,适用于动态场景,但侵入性强。掌握IoC与DI,有助于构建灵活、可维护的Spring应用。
|
2月前
|
人工智能 监控 安全
Spring AOP切面编程颠覆传统!3大核心注解+5种通知类型,让业务代码纯净如初
本文介绍了AOP(面向切面编程)的基本概念、优势及其在Spring Boot中的使用。AOP作为OOP的补充,通过将横切关注点(如日志、安全、事务等)与业务逻辑分离,实现代码解耦,提升模块化程度、可维护性和灵活性。文章详细讲解了Spring AOP的核心概念,包括切面、切点、通知等,并提供了在Spring Boot中实现AOP的具体步骤和代码示例。此外,还列举了AOP在日志记录、性能监控、事务管理和安全控制等场景中的实际应用。通过本文,开发者可以快速掌握AOP编程思想及其实践技巧。
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
372 3