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等架构选型对比,淘宝微服务架构案例。

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



目录
相关文章
|
2天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
68 17
Spring Boot 两种部署到服务器的方式
|
2天前
|
XML 监控 前端开发
Spring Boot中的WebFlux编程模型
Spring WebFlux 是 Spring Framework 5 引入的响应式编程模型,基于 Reactor 框架,支持非阻塞异步编程,适用于高并发和 I/O 密集型应用。本文介绍 WebFlux 的原理、优势及在 Spring Boot 中的应用,包括添加依赖、编写响应式控制器和服务层实现。WebFlux 提供高性能、快速响应和资源节省等优点,适合现代 Web 应用开发。
39 15
|
9天前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
163 12
|
6天前
|
人工智能 Java API
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
本次分享的主题是阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手,由阿里云两位工程师分享。
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
|
15天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
64 8
|
1月前
|
Java Spring
一键注入 Spring 成员变量,顺序编程
介绍了一款针对Spring框架开发的插件,旨在解决开发中频繁滚动查找成员变量注入位置的问题。通过一键操作(如Ctrl+1),该插件可自动在类顶部添加`@Autowired`注解及其成员变量声明,同时保持光标位置不变,有效提升开发效率和代码编写流畅度。适用于IntelliJ IDEA 2023及以上版本。
一键注入 Spring 成员变量,顺序编程
|
28天前
|
缓存 前端开发 Java
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
|
2月前
|
监控 Java 数据库连接
详解Spring Batch:在Spring Boot中实现高效批处理
详解Spring Batch:在Spring Boot中实现高效批处理
366 12
|
2月前
|
安全 Java 测试技术
详解Spring Profiles:在Spring Boot中实现环境配置管理
详解Spring Profiles:在Spring Boot中实现环境配置管理
124 10
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
176 5