【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…...
股市新手福音:河北源达“财源滚滚”让投资变得更简单
在浩渺的股市海洋中,每一位投资者都渴望找到一把能够指引航向的罗盘。尤其是对于股市新手来说,面对复杂的市场环境、纷繁的个股信息以及不断变化的投资策略,如何快速入门、精准选股,无疑是一大挑战。而河北源达信息技术股份有限公…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...