spring学习一:概述
1.1Spring是什么?
Spring是一款主流的Java EE轻量级开源框架,Spring目的是用于简化java企业级
应用的开发难度和开发周期,spring的用途不仅限于服务器端的开发,从简单性,可
测试性和松耦合的角度而言,任何java应用都可以从Spring中受益,Spring框架除了
自己提供功能外,还提供整合其他技术的框架的能力。
1.2Spring的划分方式(狭义和广义)
广义:
广义上的Spring泛指以Spring Framework为核心的Spring技术栈。
经过十多年的发展,Spring已经不再是一个单纯的应用框架,而是逐渐发展成为
一个由多个不同子项目(模块)组成的成熟技术,例如Spring Framework,Spring MVC,
SpringBoot,Spring Cloud,Spring Data,Spring Security等,其中Spring Framework
是其他子项目的基础。
这些子项目涵盖了从企业级应用开发到云计算等各方面的内容,能够帮助开发人
员解决软件发展过程中不断产生的各种实际问题,给开发人员带来了更好的开发体验。
狭义:
狭义的Spring特指 Spring Framework,通常我们将它称为Spring框架。
Spring框架是一个分层的,面向切面的Java应用程序的一站式轻量级解决方案,
它是Spring技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。
Spring有两个核心模块:IOC和AOP
IOC:inverse of controll的简写,译为“控制反转”,指把创建对象过程交给Spring进行管理。
AOP:aspect oriented programming的简写,译为“面向切面编程”。AOP用来封装多个类的
公共行为,将哪些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统
的重复代码,降低模块间的耦合度,另外,AOP还解决一些系统层面上的问题,比如
日志,事务,权限等。
1.3Spring Framework特点
●非侵入式:使用Spring Framework开发应用程序时,Spring对应用程序本身的结构影响非
常小,对领域模型可以做到零污染,对功能性组件也只需要使用几个简单的注解进行标记,
完全不会破坏原有的结构,反而能将组件结构进一步简化,这就使得基于Spring Framework
开发应用程序时结构清晰,简洁优雅。
●控制反转:IOC,反转资源获取方式,把自己创建资源,向环境索取资源变成环境将资
源准备好,我们享受资源注入。
●面向切面编程:AOP,在不修改源代码的基础上增强了代码功能。
●容器:Spring IOC是一个容器,因为它包含并且管理组件对象的生命周期,组件享受到了
容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大地降低了使用门槛,大
幅度提高开发效率。
●组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,在Spring中可以使用
XML和Java注解组合这些对象,这使得我们可以基于一个个功能明确,边界清晰的组件有
条不紊的搭建超大型复杂应用系统。
●一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库,
而且Spring旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在Spring Framework
的基础上全部使用Spring来实现。
1.4Spring模块组成
①Spring Core(核心容器)
spring core提供了IOC,DI,Bean配置装载创建的核心实现,核心概念:Beans,BeanFactory,
BeanDefinitions,ApplicationContext。
●spring-core:IOC和DI的基本实现
●spring-beans:BeanFactory和Bean的装配管理
●spring-context:Spring-context上下文,即IOC容器(ApplicationContext)
●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:springjdbc事务管理
④Spring Web
●spring-web:最基础的web支持,建立与spring-context之上,通过service和listener来初始化IOC容器
●spring-webmvc:实现web mvc
●spring-websocket:与前端的全双工通信协议
●spring-webflux:spring5.0提供的,用于取代传统java servlet,非阻塞式reactive Web框架,
异步,非阻塞,事件驱动的服务
⑤Spring Message
●spring-messaging:spring4.0提供的,为Spring继承一些基础的报文传送服务
⑥Spring Test
●spring-test:集成测试支持,主要是对junit的封装
1.5Spring6特点
版本要求:JDK最低17
spring版本:6.0.2
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章