Spring 是什么框架?

news2024/11/25 16:20:37

对于一门技术,我们需要从为什么要学学什么以及怎么学这三个方向入手来学习。那在说Spring这三点之前,我们先看Spring之前要学什么。

Java基础、Java语法进阶、MySQL基础操作、MySQL数据库设计和多表操作、JDBC、Maven基础、MyBatis、HML+CSS、JavaScript、HTTP协议、Web服务器-Tomcat、Servlet、请求和响应\JSP&会话技术\ElementUI

下面分享如何学习Spring。

Spring高级49讲

SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架教程

SSM框架

SpringBoot全套教程_Java微服务架构教程

1.1 为什么要学?

  • 从使用和占有率看
    • Spring在市场的占有率与使用率高
    • Spring在企业的技术选型命中率高
    • 所以说,Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>==90%==


说明:对于未使用Spring的项目一般都是些比较老的项目,大多都处于维护阶段。

  • 从专业角度看
    • 随着时代发展,软件规模与功能都呈几何式增长,开发难度也在不断递增,该如何解决?
      • Spring可以简化开发,降低企业级开发的复杂性,使开发变得更简单快捷
    • 随着项目规模与功能的增长,遇到的问题就会增多,为了解决问题会引入更多的框架,这些框架如何协调工作?
      • Spring可以框架整合,高效整合其他技术,提高企业级应用开发与运行效率

综上所述,Spring是一款非常优秀而且功能强大的框架,不仅要学,而且还要学好。

1.2 学什么?

从上面的介绍中,我们可以看到Spring框架主要的优势是在简化开发框架整合上,至于如何实现就是咱们要学习Spring框架的主要内容:

  • 简化开发: Spring框架中提供了两个大的核心技术,分别是:
    • IOC
    • AOP
      • 事务处理

1.Spring的简化操作都是基于这两块内容,所以这也是Spring学习中最为重要的两个知识点。
2.事务处理属于Spring中AOP的具体应用,可以简化项目中的事务管理,也是Spring技术中的一大亮点。

  • 框架整合: Spring在框架整合这块已经做到了极致,它可以整合市面上几乎所有主流框架,比如:
    • MyBatis
    • MyBatis-plus
    • Struts
    • Struts2
    • Hibernate
    • ……

这些框架中,我们目前只学习了MyBatis,所以在Spring框架的学习中,主要是学习如何整合MyBatis。
综上所述,对于Spring的学习,主要学习四块内容:
(1)IOC,(2)整合Mybatis(IOC的具体应用),(3)AOP,(4)声明式事务(AOP的具体应用

1.3 怎么学?

  • 学习Spring框架设计思想
    • 对于Spring来说,它能迅速占领全球市场,不只是说它的某个功能比较强大,更重要是在它的思想上。
  • 学习基础操作,思考操作与思想间的联系
    • 掌握了Spring的设计思想,然后就需要通过一些基础操作来思考操作与思想之间的关联关系
  • 学习案例,熟练应用操作的同时,体会思想
    • 会了基础操作后,就需要通过大量案例来熟练掌握框架的具体应用,加深对设计思想的理解。

介绍完为什么要学学什么怎么学Spring框架后,大家需要重点掌握的是:

  • Spring很优秀,需要认真重点的学习
  • Spring的学习主线是IOC、AOP、声明式事务和整合MyBais

Spring的学习主要包含四部分内容,分别是:

  • Spring的IOC/DI
  • Spring的AOP
  • AOP的具体应用,事务管理
  • IOC/DI的具体应用,整合Mybatis

对于这节的内容,大家重点要记住的是Spring需要学习的四部分内容。

和我简单了解一下Spring发展史

  • * IBM(IT公司-国际商业机器公司)在1997年提出了EJB思想,早期的JAVAEE开发大都基于该思想。
  • * Rod Johnson(Java和J2EE开发领域的专家)在2002年出版的`Expert One-on-One J2EE Design and Development`,书中有阐述在开发中使用EJB该如何做。
  • * Rod Johnson在2004年出版的`Expert One-on-One J2EE Development without EJB`,书中提出了比EJB思想更高效的实现方案,并且在同年将方案进行了具体的落地实现,这个实现就是Spring1.0。
  • * 随着时间推移,版本不断更新维护,目前最新的是Spring5
  • * Spring1.0是纯配置文件开发
  • * Spring2.0为了简化开发引入了注解开发,此时是配置文件加注解的开发方式
  • * Spring3.0已经可以进行纯注解开发,使开发效率大幅提升,我们的课程会以注解开发为主
  • * Spring4.0根据JDK的版本升级对个别API进行了调整
  • * Spring5.0已经全面支持JDK8,现在Spring最新的是5系列所以建议大家把JDK安装成1.8版

本节介绍了Spring家族与Spring的发展史,需要大家重点掌握的是:

* 今天所学的Spring其实是Spring家族中的Spring Framework

* Spring Framework是Spring家族中其他框架的底层基础,学好Spring可以为其他Spring框架的学习打好基础

我们应该如何学习这个框架

Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。

Spring Framework的发展也经历了很多版本的变更,每个版本都有相应的调整。

我们主要研究学些的就是4.x 的架构图:

(1)核心层:Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块

(2)AOP层:

  • AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强
  • Aspects:AOP是思想,Aspects是对AOP思想的具体实现

(3)数据层

  • Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
  • Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
  • Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容

(4)web层:这一层的内容将在SpringMVC框架具体学习

(5)Test层:Spring主要整合了Junit来完成单元测试和集成测试

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

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

相关文章

字节跳动做了3年软件测试,五月无情被辞,想给划水的兄弟提个醒

前言 先简单交代一下背景吧,某不知名 985 的本硕,20 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。之前没有实习经历,算是5年的工作经验吧。 这5年之间完成…

全网最全,Web测试点详细整理(测试场景举例+常见问题分析)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Web测试检查表 功…

go环境安装配置(windows)

下载go 安装包 官网: https://go.dev/dl/ go语言中文网: https://studygolang.com/dl 下载压缩包,解压 环境变量配置 GOROOT 配置你解压的目录 在Path中追加一条 %GOROOT%\bin 这里go对比JAVA还多了一个配置: GOPATH 配置go以…

原生微信小程序基础-分包加载自定义组件项目全流程

小程序基础-分包加载&&自定义组件 小程序分包加载 小程序分包加载-为什么要分包加载 微信平台对小程序单个包的代码体积限制为 2M,超过 2M 的情况下可以采用分包来解决即使小程序代码体积没有超过 2M 时也可以拆分成多个包来实现按需加载配置文件能忽略的…

远程控制电脑软件全方位测评,远程控制工具哪家强

*本文内容以及测试数据来自“B站” 作者:小李student 先问大家一个问题,你心目中最好的远控软件是哪个? 今天我要测评几个有意思的远控软件,他们分别是todesk 、向日葵、RayLink、parsec、其实我还测试了微软自带的远程控制,但…

用 Optaplanner 实现云资源优化:建模详解

引言 装箱问题是一个经典的计算机科学优化问题,它的目标是将一堆物品尽可能地放入一些容器中,以最小化容器数量或最大化容器利用率。在实际应用中,我们可以在物流、资源调度、计算机集群等领域看到装箱问题的应用。 问题描述 在云计算领域,装箱问题同样非常重要。比如,…

Java中关于字符串常量池的详解!!!

字符串常量池 前言1. 直接赋值法,默认从常量池中取对象2. new一个对象3. 字符串常量池、字符串对象、内部的value引用、具体的字符数组之间的关系4. 手动入池方法:intern方法 前言 Java使用 “ ” 称为字符串常量,为了提高程序的运行速度&am…

2023最新软件测试面试题【1000道题含答案】

1、自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化测…

非法收集儿童数据,微软与 2000w 美元和解

文章目录 🤨 非法收集儿童数据,微软与 2000w 美元和解📈 苹果股价和 Vision Pro 一样高涨👮‍♀️ 美国证监会狙击币安和其老板赵长鹏3️⃣ 红杉资本一拆为三😮 加息出乎意料!澳洲央行对抗通胀&#x1f91c…

硬核拆解 | 拓尔微65W 2C1A氮化镓多口快充

随着身边智能设备的增多,一个充电头对应一个设备,出门需要携带多个充电器已经成为日常,有时还会忘带匹配的充电头,无法充电造成困扰...... 多口快充的出现解决了这一难题,出门仅需携带一个充电头,减轻背包…

AI智慧安监平台EasyCVR新版本v3.3如何接入V1版智能分析网关硬件?

EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流…

VFP发送公众号模板消息

公众号模板消息向用户发送重要的服务通知,比如验证码,消费通知,比如时间提醒什么的。 调用代码很简单 *--发送模板消息TEXT TO msgJson NOSHOW TEXTMERGE {"touser":"oljsK6OgHA9ftJxuCUWg7cFylj6Y","template_id&…

Godot 4 源码分析 - Project Manager

简单来说,Godot 4一共有三种运行模式:工程管理、编辑、运行 有点意思的是,每次调试,只能在其中一种模式下运行 如果同时配置了编辑器与工程管理器,则会报错: if (editor && project_manager) {O…

uni-app uni-forms组件的表单验证

前言 最近使用uni-app开发时,在使用加强表单时,使用表单验证的过程和PC端的区别uni-app文档说如果要使用自定义表单验证是需要去掉form中:rules"rules",使用ref绑定但最终我使用validateFunction 自定义校验规则,使用上面2种方式都…

音质更进一步,更耐用的骨传导耳机,南卡Runner Pro 4S上手

骨传导耳机是一种非常适合户外使用的耳机,很多喜欢运动的朋友都会配备一副,户外健身的时候会一直戴着。这种耳机使用时不入耳,通过震动颧骨来传递声音,不影响我们和别人的正常交流,户外也可以清楚感知车流、鸣笛的声音…

专业小程序开发平台 教你如何开发点餐小程序

今天小编借助在线工具乔拓云,只需借助在线模板和无编程开发工具,轻松实现点餐小程序开发和管理,下面跟着小编的教程一起学习,如何使用乔拓云工具开发专属的外卖点餐订餐小程序平台。 像这样一个点餐外卖小程序只需一个模板无编程就…

Java多线程与并发-原理

1、synchronized 线程安全问题的主要诱因 存在共享数据(也称临界资源)。存在多条线程共同操作这些共享数据。 解决问题的根本方法: 同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进…

【编译、链接、装载八】链接

【编译和链接八】链接 一、链接的起源——链接器年龄比编译器长1、 机器指令时代2、汇编指令时代3、链接4、静态链接5、结合CPU指令分析链接 二、链接的接口——符号1、ELF符号表结构1.1、符号类型和绑定信息(st_info)1.2、符号所在段(st_shn…

图神经网络的基本结构

文章目录 图神经网络的基本结构图谱和图傅里叶变换基于频谱域的GNN和基于空间域的GNN的比较图神经网络的任务需求和模型要求任务需求模型要求 图神经网络的实用框架GCN图神经网络的几道面试题 图神经网络的基本结构 图神经网络 (Graph Neural Network, GNN) 是一类用于处理图数…

UI自动化测试的痛点有哪些?怎么解决

目录 前言 1、需求不稳定,频繁变更的项目 2、开发维护周期短的项目 3、被测系统开发不规范,可测试性需求不明确 总结: 前言 当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技…