2023新版Spring6全新讲解-SpringFramework介绍

news2024/12/16 20:13:41

SpringFramework介绍

在这里插入图片描述

一、官网地址阅读

https://spring.io/

二、Spring的发展历史

image.png

三、Spring的概述

  一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的依赖关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题。

  Spring(Spring Framework) 是一个开源框架,最早由Rod Johnson创建,并在《Expert One-on-One:J2EE Design and Development》这本著作中进行了介绍。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。

  bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组 件必须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO(POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称)。

  Spring 可以做非常多的事情。但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。这是一个郑重的承诺。许多框架都声称在某些方面做了简化,但Spring的目标是致力于全方位的简化Java开发。这势必引出更多的解释,Spring是如何简化Java开发的?

为了降低Java开发的复杂性,Spring采取了以下4种关键策略:

  • 基于POJO的轻量级和最小侵入式编程;
  • 通过控制反转和依赖注入以及面向接口实现松耦合;
  • 基于切面和惯例进行声明式编程;
  • 通过切面和模板减少样板式代码。

几乎Spring所做的任何事情都可以追溯到上述的一条或多条策略。

  • Spring的各种注入方式
  • IOC/DI
  • AOP(事务)
  • JdbcTemplate
  • 事务

四、版本号说明

常见版本号说明:

软件版本号:2.0.2.RELEASE

2:主版本号。当功能模块有较大更新或者整体架构发生变化时,主版本号会更新
0:次版本号。次版本表示只是局部的一些变动。
2:修改版本号。一般是 bug 的修复或者是小的变动
RELEASE:希腊字母版本号。次版本号用户标注当前版本的软件处于哪个开发阶段
版本号说明
Base设计阶段。只有相应的设计没有具体的功能实现。
Alpha软件的初级版本。存在较多的 bug
Bate表示相对 alpha 有了很大的进步,消除了严重的 bug,还存在一些潜在的 bug。
Release该版本表示最终版。

五、Spring的结构

image.png

常用jar包说明

上图中包含了 Spring 框架的所有模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。下面分别对这些模块的作用进行简单介绍。

Spring Core(核心容器)

spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext。

  • spring-core :IOC和DI的基本实现
  • spring-beans:BeanFactory和Bean的装配管理(BeanFactory)
  • spring-context:Spring context上下文,即IOC容器(AppliactionContext)
  • spring-expression:spring表达式语言

Spring AOP

  • spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy
  • spring-aspects:集成AspectJ,AOP应用框架
  • spring-instrument:动态Class Loading模块

Spring Data Access

  • spring-jdbc:spring对JDBC的封装,用于简化jdbc操作
  • spring-orm:java对象与数据库数据的映射框架
  • spring-oxm:对象与xml文件的映射框架
  • spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信
  • spring-tx:spring jdbc事务管理

Spring Web

  • spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器
  • spring-webmvc:实现web mvc
  • spring-websocket:与前端的全双工通信协议
  • spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务

Spring Message

  • Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务

Spring test

  • spring-test:集成测试支持,主要是对junit的封装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter连接不同类型数据库语法

Jmeter连接不同类型数据库语法 添加:配置原件->JDBC Connection Configuration variable name for created pool:自定义一个线程池变量名database Connection Configuration database URL: 填写数据库ip、端口、dbname等,但是不同数据库…

【UE4】从零开始制作战斗机(下:喷射尾焰随推进速度变化)

上一篇: 【UE4】从零开始制作战斗机(中:飞机操控逻辑)_Zhichao_97的博客-CSDN博客 效果 步骤 1. 新建一个Niagara发射器 选择新发射器 选择空模板 命名为“ThrusterEmitter” 2. 打开“ThrusterEmitter”,选中“发射…

真题详解(快速排序)-软件设计(八十一)

原创 真题详解(语法分析输入记号流)-软件设计(八十)https://blog.csdn.net/ke1ying/article/details/130791934 COCOMOII基于____进行估算? 答案:源代码行数 2、0~7有8个索引,0~4是5个直接索引,磁盘块数据大小1kb字节…

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer)

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer) 一、服务消费 可以参考上节eurekaClientConsumer。 在启动类中,我们已经注入了一个restTemplate了,并且在上面增加了@LoadBalanced注解,这个是导入的org.springframework.cloud.cl…

001. 为啥用IDEA反编译没有擦除泛型?

你好,我是YourBatman:一个俗人,贪财好色。 📚前言 Java泛型是进阶高级开发必备技能之一,了解实现泛型的基本原理,有助于写出更优质的代码。 众所周知,Java是伪泛型,是通过类型擦除…

Redis哨兵集群搭建及其原理

Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…

Centos8安装ffmpeg,使用mediamtx搭建RTSP流媒体服务器

文章目录 1、Centos安装ffmpeg2、使用mediamtx搭建媒体服务器 1、Centos安装ffmpeg 1、先安装epel-release yum install epel-release2、安装nux存储库 rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/…

[NSSROUND#12]杂项记录

文章目录 [NSSRound#12 Basic]Bulbasaur[NSSRound#12 Basic]Secrets in Shadow[NSSRound#12 Basic]奇怪的tex文件[NSSRound#12 Basic]坏东西[NSSRound#12 Basic]ordinary forensics[NSSRound#12 Basic]Noisy Cube[NSSRound#12 Basic]ability[NSSRound#12 Basic]strange python …

数据结构课程设计——集合的交、并和差运算

集合的交、并和差运算 数据结构课程设计任务书 学生姓名: 专业班级: 软件工程 指导教师: 工作单位: 题 目: 集合的并、交和差运算 基础要求: 掌握数据结构与…

最全iOS 上架指南

一、基本需求信息。 1、苹果开发人员账户(公司已经可以无需申请,需要开启开发者功能,每年99美元) 2、开发好应用程序 二、证书 上架版本需要使用正式证书。 1、创建Apple Developer证书 2、上传证书Sign In - Apple 3、点击开发者…

pyqt5:py处理C语言格式数组和有符号数的转换(备忘录)

文章目录 1.问题:把下面的数组所表示的正弦波用曲线描绘出来。1.1 将C语言数组直接替换为py数组1.2 使用numpy读入数组1.3完整代码 2.从正弦波数据生成C数组2.1 正弦波数据2.2 负数转成16位带符号整型公式2.3 负数转成16位带符号整型 完整代码 3. 生成正弦波数据的代…

ASEMI代理英飞凌IPA65R650CE功率MOS管中文资料

编辑-Z IPA65R650CE是一款高性能功率晶体管,旨在满足现代电子应用日益增长的需求。这种先进的半导体器件提供了高效、低功耗和优异热性能的独特组合,使其成为广泛应用的理想选择,包括电源、电机驱动和可再生能源系统。 IPA65R650CE的主要功能…

失业五个月,终于有offer了!但这家公司的风评惨不忍睹,要接吗?

往年,程序员们找工作可以说是不怎么费力的,不少求职者还会比对几家offer,看薪酬、看加不加班、看通勤时间等等等等,最后选择自己最满意的那一家过去。 但是今年,情况确实完全不一样,用网友的话形容就是“往…

vs code ts运行、断点调试解决方案

序: 1、解决ts在vs code里直接运行,并在终端直接看结果 2、解决ts 断点调试问题(博主这个调试算的上全网最简单的设置方法了)。 3、ts-node : 无法加载文件 C:\Program Files\nodejs\ts-node.ps1,因为在此系统上禁去看这篇》ts-no…

Velocity模板与itextpdf联合生成pdf

pom <!-- velocity模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><!-- itext7html转pdf --><depende…

LeetCode刷题(ACM模式)-01数组

参考引用&#xff1a;代码随想录 注&#xff1a;每道 LeetCode 题目都使用 ACM 代码模式&#xff0c;可直接在本地运行&#xff0c;蓝色字体为题目超链接 0. 数组理论基础 数组&#xff08;array&#xff09;是存放在连续内存空间上的相同类型数据的集合&#xff0c;是一种复合…

【哪些人不适合学习云计算?看看有没有你!】

云计算作为是互联网技术革命的重要一员&#xff0c;也是区别于一般IT职业的。作为高级技工&#xff0c;不是谁都能学会&#xff0c;也不是谁都适合这个技术。优秀的云计算工程师能让技术成为炫耀的资本&#xff0c;玩得神乎其技&#xff0c;引得众人追捧。我想这也是大部分热爱…

Cam APP-HAL流程追踪之demo梳理

一、基础知识 1、Google官网的Cam流程如下图1 2、Cam的预览、拍照、录像是分开的 Cam的预览、拍照、录像是各自独立的-换句话说可以不开启预览拍照或者录像–后面代码会详细介绍&#xff1b;市场上的成品Cam应用&#xff0c;打开Cam后直接打开了预览&#xff0c;然后可以拍照…

【数据结构】线性表之栈、队列

前言 前面两篇文章讲述了关于线性表中的顺序表与链表&#xff0c;这篇文章继续讲述线性表中的栈和队列。 这里讲述的两种线性表与前面的线性表不同&#xff0c;只允许在一端入数据&#xff0c;一段出数据&#xff0c;详细内容请看下面的文章。 顺序表与链表两篇文章的链接&…

最新社区论坛小程序源码 含流量主功能+前后端+部署搭建教程

分享一个社区论坛小程序源码&#xff0c;含完整前后端代码包和详细的部署搭建教程&#xff0c;做地方运营很适合&#xff0c;集成了流量主功能&#xff0c;一键轻松开启。 系统功能一览&#xff1a; 广场管理&#xff1a;广场列表&#xff0c;圈子列表&#xff0c;圈子审核 帖…