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

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



目录
相关文章
|
21天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
2月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
2月前
|
缓存 NoSQL Java
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
Spring Cache 是 Spring 提供的简易缓存方案,支持本地与 Redis 缓存。通过添加 `spring-boot-starter-data-redis` 和 `spring-boot-starter-cache` 依赖,并使用 `@EnableCaching` 开启缓存功能。JetCache 由阿里开源,功能更丰富,支持多级缓存和异步 API,通过引入 `jetcache-starter-redis` 依赖并配置 YAML 文件启用。Layering Cache 则提供分层缓存机制,需引入 `layering-cache-starter` 依赖并使用特定注解实现缓存逻辑。
354 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
2月前
|
Java 微服务 Spring
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
文章介绍了如何利用Spring Cloud Alibaba快速构建大型电商系统的分布式微服务,包括服务限流降级等主要功能的实现,并通过注解和配置简化了Spring Cloud应用的接入和搭建过程。
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
|
2月前
|
安全 Java 数据安全/隐私保护
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
本文介绍了一个基于SpringBoot、Spring Security和JPA开发的校园图书管理系统,包括系统的核心控制器`LoginController`的代码实现,该控制器处理用户登录、注销、密码更新、角色管理等功能,并提供了系统初始化测试数据的方法。
36 0
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
|
2月前
|
安全 Java 数据库
|
2月前
|
JSON 安全 Java
|
2月前
|
Java Spring XML
掌握面向切面编程的秘密武器:Spring AOP 让你的代码优雅转身,横切关注点再也不是难题!
【8月更文挑战第31天】面向切面编程(AOP)通过切面封装横切关注点,如日志记录、事务管理等,使业务逻辑更清晰。Spring AOP提供强大工具,无需在业务代码中硬编码这些功能。本文将深入探讨Spring AOP的概念、工作原理及实际应用,展示如何通过基于注解的配置创建切面,优化代码结构并提高可维护性。通过示例说明如何定义切面类、通知方法及其应用时机,实现方法调用前后的日志记录,展示AOP在分离关注点和添加新功能方面的优势。
38 0
|
2月前
|
Java Spring 容器
彻底改变你的编程人生!揭秘 Spring 框架依赖注入的神奇魔力,让你的代码瞬间焕然一新!
【8月更文挑战第31天】本文介绍 Spring 框架中的依赖注入(DI),一种降低代码耦合度的设计模式。通过 Spring 的 DI 容器,开发者可专注业务逻辑而非依赖管理。文中详细解释了 DI 的基本概念及其实现方式,如构造器注入、字段注入与 setter 方法注入,并提供示例说明如何在实际项目中应用这些技术。通过 Spring 的 @Configuration 和 @Bean 注解,可轻松定义与管理应用中的组件及其依赖关系,实现更简洁、易维护的代码结构。
35 0
|
2月前
|
Java Spring 供应链
Spring 框架事件发布与监听机制,如魔法风暴席卷软件世界,开启奇幻编程之旅!
【8月更文挑战第31天】《Spring框架中的事件发布与监听机制》介绍了Spring中如何利用事件发布与监听机制实现组件间的高效协作。这一机制像城市中的广播系统,事件发布者发送消息,监听器接收并响应。通过简单的示例代码,文章详细讲解了如何定义事件类、创建事件发布者与监听器,并确保组件间松散耦合,提升系统的可维护性和扩展性。掌握这一机制,如同拥有一把开启高效软件开发大门的钥匙。
39 0
下一篇
无影云桌面