【Spring】学习Spring框架那点小事儿
Spring作者:Rod Johnson
Rod Johnson 是一位软件开发人员和作家,他在软件开发领域有着广泛的影响力。他出生于澳大利亚,拥有计算机科学和音乐双学位(能写出有优雅的代码一定有艺术细胞)。
Rod Johnson 在 2002 年出版了《Expert One-on-One J2EE Design and Development》一书,提出了轻量级容器的概念,为 Spring 框架的诞生奠定了基础。他在 2003 年创建了 Spring 框架,并成立了 SpringSource 公司,专门开发和维护 Spring 框架。SpringSource 公司在 2009 年被 VMware 公司收购,Rod Johnson 也加入了 VMware 公司,继续领导 Spring 框架的开发工作。
除了 Spring 框架,Rod Johnson 还参与了其他一些开源项目,如 Apache Tomcat、Apache Geronimo 等。他还出版了多本关于软件开发的书籍,如《Expert One-on-One J2EE Design and Development》、《J2EE Development without EJB》等。
Rod Johnson 在软件开发领域提出了许多重要的概念和思想,如轻量级容器、依赖注入、AOP 等,这些概念和思想已经被广泛应用于各种软件开发框架中。他的工作对软件开发领域产生了深远的影响,尤其是在 Spring 框架的开发和推广方面。
总之,Rod Johnson 是一位杰出的软件开发人员和作家,他对软件开发领域做出了重要的贡献,尤其是在 Spring 框架的开发和推广方面。
Spring介绍
Spring 框架是一个开源的 Java 应用程序框架,它提供了全面的解决方案,用于开发企业级 Java 应用程序。Spring 框架的核心是一个轻量级的容器,它提供了依赖注入、AOP、事务管理等功能。Spring 框架还提供了许多其他的模块,如 MVC 框架、JDBC 抽象层、ORM 集成、消息传递、Web 服务等,这些模块可以单独使用,也可以组合使用,以满足不同的需求。
Spring 框架的设计理念是“约定优于配置”,这意味着它提供了一套默认的配置,开发人员可以根据需要进行修改。Spring 框架还提供了灵活的配置方式,包括 XML 配置、Java 配置和基于注解的配置。
Spring 框架的优点包括:
-
轻量级:Spring 框架是一个轻量级的容器,它不需要大量的资源来运行。
-
灵活性:Spring 框架提供了灵活的配置方式,包括 XML 配置、Java 配置和基于注解的配置。
-
模块化:Spring 框架提供了许多模块,这些模块可以单独使用,也可以组合使用,以满足不同的需求。
-
易于测试:Spring 框架提供了易于测试的 API,可以方便地进行单元测试和集成测试。
-
社区支持:Spring 框架有一个庞大的社区,提供了大量的文档、教程和示例代码,可以帮助开发人员快速上手。
Spring 框架的发展历程
-
2002年,Rod Johnson 出版了《Expert One-on-One J2EE Design and Development》一书,提出了轻量级容器的概念,为 Spring 框架的诞生奠定了基础。
-
2003年,Spring 框架的第一个版本发布,它是一个轻量级的容器,提供了依赖注入、AOP、事务管理等功能。
-
2004年,Spring 1.0 发布,它是一个完整的应用程序框架,提供了更多的功能,如 MVC 框架、JDBC 抽象层、ORM 集成等。
-
2005年,Spring 1.2 发布,它增加了对 Java 5 的支持,并引入了注解配置。
-
2006年,Spring 2.0 发布,它增加了对 Java 5 的全面支持,并引入了基于注解的配置方式。
-
2007年,Spring 2.5 发布,它增加了对 Java 6 的支持,并引入了基于注解的依赖注入和 AOP 配置方式。
-
2009年,Spring 3.0 发布,它增加了对 Java 7 的支持,并引入了基于 Java 配置的方式。
-
2013年,Spring 4.0 发布,它增加了对 Java 8 的支持,并引入了响应式编程模型。
-
2017年,Spring 5.0 发布,它增加了对 Java 9 的支持,并引入了响应式编程模型和 WebFlux 框架。
-
2020年,Spring 5.3 发布,它增加了对 Java 15 的支持,并引入了更多的功能和改进。
-
2022年,Spring 6.0 发布,它增加了对 Java 17 的支持,并引入了更多的功能和改进。
Spring 框架的网站
-
Spring 官方网站:Spring 官方网站提供了 Spring 框架的详细文档和示例代码,是学习 Spring 框架的最佳资源。 网址:Spring | Home

-
Baeldung:Baeldung 是一个专注于 Java 和 Spring 框架的博客,提供了大量的教程和示例代码,适合初学者和有经验的开发人员。网址:baeldung

-
Spring Boot 官方文档:Spring Boot 是 Spring 框架的一个子项目,提供了快速开发 Spring 应用程序的工具和库。Spring Boot 官方文档提供了详细的文档和示例代码,适合初学者和有经验的开发人员。网址:Spring Boot

-
Spring 中文社区:Spring 中文社区是一个专注于 Spring 框架的中文社区,提供了大量的教程、文章和示例代码,适合中文读者。网址:Spring 中文网 官网

-
Spring 教程网:Spring 教程网是一个专注于 Spring 框架的中文网站,提供了大量的教程、文章和示例代码,适合初学者和有经验的开发人员。

相关文章:
【Spring】学习Spring框架那点小事儿
Spring作者:Rod Johnson Rod Johnson 是一位软件开发人员和作家,他在软件开发领域有着广泛的影响力。他出生于澳大利亚,拥有计算机科学和音乐双学位(能写出有优雅的代码一定有艺术细胞)。 Rod Johnson 在 2002 年出版…...
L2-035 完全二叉树的层序遍历(Python)
L2-035 完全二叉树的层序遍历 分数 25 全屏浏览 切换布局 作者 陈越 单位 浙江大学 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度…...
get命令使用提交代码
当你想要通过Git提交代码时,以下是一个详细的案例,包括从创建更改到推送到远程仓库的整个过程: 首先,确保你已经在本地仓库目录中进行了需要的更改。 添加更改到暂存区: git add . 这会将所有更改添加到Git的暂存区&…...
矩阵乘积知识
参考:矩阵点乘【矩阵点乘计算公式】_万动力 矩阵乘 矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 [1] 。 哈达码积 别名:矩阵点乘&…...
10、设计模式之外观模式(Facade)
一、什么是外观模式 这个大家一定是经常使用的,外观模式(门面模式)是一种结构型设计模式。它提供一个统一的接口,用于访问子系统中的一组接口,隐藏了系统的复杂性。最简单的应用就是,当controller层的逻辑处…...
小程序APP为什么要选择游戏盾SDK防护DDOS
小程序APP为什么要选择游戏盾SDK防护DDOS?在移动互联网高速发展的今天,小程序APP已经成为了人们日常生活中不可或缺的一部分。无论是购物、娱乐还是社交,小程序APP都为我们提供了极大的便利。然而,随着小程序APP的普及,…...
STL之deque容器代码详解
1 基础概念 功能: 双端数组,可以对头端进行插入删除操作。 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低。 deque相对而言,对头部的插入删除速度回比vector快。 vector访问…...
Liunx文件系统和基础IO
文件系统和基础IO 基础IOc语言基础IO函数当前路径和标准流系统IO系统调用函数重定向FILE文件结构体 在谈缓存区问题理解文件系统初识inode 基础IO c语言基础IO函数 打开与关闭 FILE *fopen(char *filename, const char *mode);选项还可以是 r/w/a 意味着为可读可写打开。 2…...
【Python+Selenium学习系列5】Selenium特殊元素定位之-鼠标悬停操作
前言 Selenium模拟用户在浏览器中的操作,比如点击按钮。在某些场景下,我们需要模拟鼠标悬停的操作,来触发一些隐藏的元素。本文将介绍Python Selenium实现鼠标悬停操作。 鼠标悬停,即当光标与其名称表示的元素重叠时触发的事件&…...
简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构
在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域…...
tcp 连接数上限突破
连接数上限条件 文件句柄的限制 一个tcp连接就需要占用一个文件描述符,一旦文件描述符用完,新的连接就会返回给我们错误是:Can’topen so many files。linux系统出于安全角度的考虑,在多个维度对于可打开的文件描述符进行了限制…...
解决 mmseg/models/decode_heads/mask2former_head.py 中__init__()关键字参数错误
目录 【1 - 问题描述】 【2 - 报错位置检查】 【3 - 问题解决】 【4 - 解决的过程】 【1 - 问题描述】 在mmsegmentation中运行mask2former模型的分割任务遇到报错缺少关键字的错误: TypeError: class Mask2FormerHead in mmseg/models/decode_heads/mask2form…...
如何使用 ArcGIS Pro 分析爆炸波及建筑
假设在某栋建筑内发生了爆炸,需要根据爆炸的范围分析出来波及的建筑,对于这一需求,我们可以通过ArcGIS Pro来实现,这里为大家介绍一下分析的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…...
LoadBalancer (本地负载均衡)
1.loadbalancer本地负载均衡客户端 VS Nginx服务端负载均衡区别 Nginx是服务器负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求,即负载均衡是由服务端实现的。 loadbalancer本地负载均衡,在调用微服务接口时候&a…...
每日一题 第一期 洛谷 铺地毯
[NOIP2011 提高组] 铺地毯 https://www.luogu.com.cn/problem/P1003 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n n n 张地毯,编号从 1 …...
Linux 多线程开发
第三章 Linux 多线程开发 3.1 线程3.1.2 线程操作3.1.2 线程属性 3.2 线程同步3.2.1 互斥量/锁3.2.2 死锁3.2.3 读写锁 3.3 生产者消费者模型3.3.1 条件变量3.3.2 信号量/灯 网络编程系列文章: 第1章 Linux系统编程入门(上) 第1章 Linux系统…...
Android 9.0 关于在系统Launcher3中调用截图api总是返回null的解决方案
1.概述 在9.0的系统rom产品定制化开发中,在Launcher3的开发中,在某些时候需要调用截图接口来进行截屏功能实现,而在Launcher3中发现调用系统截屏接口SurfaceControl.screenshot进行截图的时候始终为null, 获取不到系统当前页面的截屏功能,所以需要找到当前截屏失败的原因然…...
openssl3.2 - exp - 用openssl命令行来模拟ECC加解密的全流程
文章目录 openssl3.2 - exp - 用openssl命令行来模拟ECC加解密的全流程概述笔记实验环境实验备注END openssl3.2 - exp - 用openssl命令行来模拟ECC加解密的全流程 概述 工程中要用到ECC加解密, 先去查了资料. 在网上能查到一些大佬们写的ECC加解密实现(基于openssl API), 不…...
【Linux进阶之路】HTTP协议
文章目录 一、基本概念1.HTTP2.域名3.默认端口号4.URL 二、请求与响应1.抓包工具2.基本框架3.简易实现3.1 HttpServer3.2 HttpRequest3.2.1 version13.2.2 version23.2.3 version3 总结尾序 一、基本概念 常见的应用层协议: HTTPS (HyperText Transfer Protocol Sec…...
股市新手福音:河北源达“财源滚滚”让投资变得更简单
在浩渺的股市海洋中,每一位投资者都渴望找到一把能够指引航向的罗盘。尤其是对于股市新手来说,面对复杂的市场环境、纷繁的个股信息以及不断变化的投资策略,如何快速入门、精准选股,无疑是一大挑战。而河北源达信息技术股份有限公…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
