《Spring6》第01节:Spring介绍以及为什么使用Spring框架
ccwgpt 2024-10-11 11:14 36 浏览 0 评论
《Spring6》第01节:Spring介绍以及为什么使用Spring框架
从这篇文章开始,我将介绍一下自己学习Spring6框架相关的笔记内容,结合本人自身学习Spring框架的经验,给大家梳理一下Spring中的常用知识点,希望可以让新手开发人员快速入门Spring框架。
1.1、Spring框架介绍
目前Spring是Java应用领域中使用最为广泛的框架,早期Spring只是单纯的指代Spring框架而已,但是随着Spring的不断发展,目前Spring已经是一个框架体系,不再单纯指代某一个单一框架,而是许多框架的统称,这些框架都是基于Spring衍生而来,例如:Spring、SpringMVC、Spring Data、Spring Batch等等框架。
2002年,作者Rod Johnson首次提出了Spring框架的相关设计思想及概念,并且在2003年推出了Spring的第一个框架,Spring框架目前已经发展到了Spring6.x版本,不同版本存在不同新特性。
- Spring1.x版本
引入IOC容器、依赖注入、AOP切面编程,基于XML的方式进行开发,这种开发模式下需要编写很多的XML配置信息,比较繁琐复杂。
- Spring2.x版本
引入了注解的配置方式,增强了对 Java EE 规范的支持,如 JPA、JMS 等,这种模式下,我们只需要编写少量的XML配置信息,使用注解即可完成Spring程序的代码开发。
- Spring3.x版本
引入了基于Java代码的配置方式,全面支持 Java 5 及以上版本的新特性,如泛型、注解等。提供了更强大的表达式语言(SpEL),方便在配置和运行时进行动态计算。
- Spring4.x版本
对 Java 8 的新特性进行了深度支持,如 Lambda 表达式、函数式接口等。
- Spring5.x版本
全面支持反应式编程,提供了 WebFlux 框架,用于构建非阻塞、高性能的 Web 应用。支持 HTTP/2,提升了 Web 应用的性能和效率。对 Java EE 的支持更加灵活,可在独立环境下运行,不依赖于传统的 Java EE 服务器。
- Spring6.x版本
性能优化,包括更高效的依赖注入机制、改进的 AOP 实现以及优化的事务管理。对 Java 最新版本的支持更加完善,充分利用 Java 的新特性,如记录类、模式匹配增强等。提供了更便捷的开发工具和功能,如新的自动配置功能。
目前,基于XML的配置方式是早期的开发模式,现在已经不使用了,使用最多的方式就是基于注解的配置方式。
1.2、传统开发模式
在没有出现Spring框架之前,大部分企业采用的是Java+Servlet+JSP、EJB (Enterprise JavaBeans)、Struts 1.x等开发模式,这几种模式下,开发的代码都比较的复杂,开发一个应用程序效率非常低,一旦出现问题,排查问题还比较费劲。本人比较幸运,没有经历过这一阶段,我刚入工作时候,只接触过了个别Java+Servlet+JSP的项目,之后都是采用Spring框架开发的项目。这里我们来看下没用Spring框架开发的项目中,代码存在的一些问题。
举个例子:
- 在Java+Servlet+JSP开发模式下,对象的创建,都是在需要使用的地方,主动通过new关键字创建出来的。
- 假设:AService类中存在一个sayHello()方法,BService类中demo01()方法需要调用AService的sayHello()方法,那么代码就会如下所示。
package com.spring.study;
public class AService {
public void sayHello() {
System.out.println("hello");
}
}
public class BService {
public void demo01() {
// 创建对象
AService aService = new AService();
// 调用方法
aService.sayHello();
}
}
- 从上面代码上来看,这么写是没有什么问题的,但是我们想一下,这只是BService类调用一次AService类中方法,如果其他的类也要使用这个方法,那是不是其他的类也需要先通过new AService()创建出A对象,然后才可以调用。10个地方调用就要创建10次对象,100个地方调用就要创建100次对象,依此类推,可以发现,多个地方调用对应方法,就需要创建相应的对象。
- 但是针对这个代码来说,不管对象多少个对象,结果都是一样的,都只是单纯的要调用sayHello()方法,创建1次和创建100次对象没啥区别,反而不断创建代码还会使代码更加冗余复杂。
- 另外,在不同的地方创建对象,也会增加代码之间的耦合性,如果AService需要升级成AServiceV2版本,那么使用到AService类的地方,都需要一起改动,那这个改动量就非常大了。
1.3、Spring如何解决上面问题
Spring框架很好的解决了传统开发模式的弊端,并且还简化了应用程序的开发,我们来看看Spring是如何解决上面两个问题。
- 通过new创建对象问题
针对创建对象的这个问题,Spring是这样解决的,既然大部分对象只需要创建一次就可以了,那么是不是可以在程序启动的时候,就将整个项目中需要使用的对象全部初始化创建完成,接着保存到一个Map集合里面,后续在需要使用的地方,直接通过key从Map集合获取即可。
Spring没有使用new关键字创建对象,而是采用工厂模式和反射机制创建相应的对象,创建的对象直接保存在一个Map容器里面,这个容器就是Spring框架中的IOC容器,也是Spring核心功能之一。
- 代码耦合性问题
对于代码之间的耦合性问题,Spring通过依赖注入的方式完美解决,这里就需要引入一个新的概念:依赖注入Dependency Injection,简称:DI。什么是依赖注入呢?依赖注入就是Spring会主动给当前类中的属性赋值。例如:BService类中需要使用AService对象,那么Spring就会将AService对象赋值给BService类中的aService属性。案例代码如下:
package com.spring.study;
/**
* @author ZhuYouBin
* @version 1.0.0
* @date 2024/8/19 17:21
* @description
*/
public class BService {
// Spring通过依赖注入当前对象
private AService aService;
public void demo01() {
// 调用方法
aService.sayHello();
}
}
以上就是我对Spring框架的一个入门介绍,可能说的不是很详细,只是先对Spring大概有个了解,下一小节我们就开始进入Spring6的实战环节,来看下使用Spring6开发应用到底有多简单。
今天就到这里,未完待续~~
相关推荐
- css布局方案汇总(28个实例图文并茂)
-
简介布局在我们前端日常开发来说是非常重要的,一个好的布局能简化代码的同时还能提高网页的性能。常见的布局方法有浮动(float)布局、绝对定位(position)布局、表格布局(table)、弹性(fl...
- 十款免费的CSS框架加速Web开发
-
Pure这是Yahoo最新推出的一款CSS框架,它只有HTML和CSS,没有使用任何JavaScript语言。总大小只有4.4kb,但功能却非常丰富,支持响应式样式和各种导航、表格、表单、按钮、网格和...
- Tailwind CSS 是不是目前世上最好的CSS框架?
-
转载说明:原创不易,未经授权,谢绝任何形式的转载今天看了一篇国外大佬对TailwindCSS的看法,在这里分享给大家,看看大家是否赞同,以下是其相关内容的整理,由于翻译水平有限,欢迎大家讨论和指...
- 下一代 CSS 框架:Mojo CSS,为何如此受欢迎?
-
TailwindCSS推出即受到广大开发者的欢迎,当前Githubstar数已达77.8k。它是一个功能类优先(utility-first)的CSS框架,它提供了一系列功能类,让开发者...
- 常见的几种摄影构图方式
-
摄影构图,是一种在摄影画面中表现结构美、形式美的方式。构图能让摄影主体更加突出,画面更加有序。所以说,构图在摄影中是非常重要的一个环节。无论是前期构图还是后期构图,摄影者都要对构图有一个比较深的了解。...
- 风光摄影10大构图技巧,会用构图,照片更容易好看
-
风光摄影10大构图技巧,会用构图,照片更容易好看先解释一下,为什么会使用构图之后,照片更容易好看?因为,构图是根据很多好看的照片,总结出来的技巧,使用这些构图技巧,就相当于站在了巨人的肩膀上,也就是用...
- 掌握框式构图的摄影技巧,会让摄影爱好者的作品更有魅力!
-
很多摄影爱好者都知道摄影构图中有个框式构图,但大多数人对框式构图的摄影技巧,却一知半解。所以摄影爱好者们有必要更全面、深入的了解,并掌握框式构图,会对你摄影水平的提高更有帮助。【欢迎点击上方关注:金立...
- 这个构图很简洁,但为什么不耐看?
-
摄影爱好者最常犯的错就是过于复杂、主体不明确,但当遇到简单的场景往往又会出现单调、不耐看的状况。为什么会这样?说白了还是观察力不够。下面是本周的摄影入围习作,我们一起来看看这些照片中主体、陪体以及背景...
- 初学者需要记牢的八种常用构图法
-
作者:冯海军摄影中,构图很关键,决定照片是否成功,所以在构图上要加以重视和推敲,虽然说构图无定法,但是也有很多的规律可循,以下列举几种常用构图,会对初学者有很大的帮助。多彩刘卫洲摄苏州姑苏俱乐部(...
- 构图这件事不难!掌握14种构图模式就稳了
-
如果说视觉元素是视觉信息的载体,那么构图就是视觉元素的载体。没有适当形式的构图对视觉元素有机、有序地承载,平面设计将无法传达预定的设计意图和视觉信息。因此,对于平面设计而言,构图是平面设计不可或缺的重...
- 框架构图如何使用?
-
1分钟教你用手机拍大片。今天我们利用框架构图,在不同的运镜方法下拍摄。·首先将手机贴近地面,拍摄人物走过的画面。·然后利用3D效果的背景衬托,将手机贴近地面,以低角度仰拍人物。·最后我们用高清画质来呈...
- 面构图的5种超实用的构图形式 前景构图,框架构图,填充构图
-
面构图的5种超实用的构图形式。为什么有的人拍摄的照片好看又舒适?仔细观察会发现他们善用构图。大家好,今天带大家了解摄影中5种超实用的面构图形式。·一、前景构图。前景是构图中的神奇要素,可以提升照片的表...
- 一看就懂!跟着马格南的大师学构图
-
马格南图片社是迄今为止全球最重要的摄影图片社,其网站包涵了太多经典的名字和照片。细细品味这些经典图片,能够学到很多有用的构图手法。跟着大师走,总不会错吧?前后景的运用这似乎是非常常见的一种手法,仔细看...
- 这才是框架构图,有想法!能给你启发么?
-
框架构图大家并不陌生,但并不是有一个框就行了。框架构图用得不好,就很死板生硬,给人感觉很假。如果你理解透了,拍出的作品不会单调。今天就给大家分享一下框架构图,你看看有哪些妙用?1.广角与长焦的应用长焦...
- 7B小模型写好学术论文,新框架告别AI引用幻觉
-
ScholarCopilot团队投稿量子位|公众号QbitAI学术写作通常需要花费大量精力查询文献引用,而以ChatGPT、GPT-4等为代表的通用大语言模型(LLM)虽然能够生成流畅文本,但...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 若依框架 (41)
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- 前端框架bootstrap (42)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle v (42)
- oracle字符串长度 (48)
- oracle提交事务 (47)