一篇文章让你理解:什么是Spring???

发布时间 2023-10-01 12:38:53作者: Melo70000

背景

市场上,随便一个Java工程师的招牌要求上,都可以看到SSM、Spring、SpringMVC...类似字样。这玩意到底是个啥?

这是中邮消费招聘的岗位要求,可以看到第3点:

3、熟悉Struts/Spring/SpringMVC/...

对于Java开发这来说,Spring就像是我们吃饭要用的筷子一样,有着很强的实用性。

所以,我们在这先热个身,简单了解一下。

介绍

什么是Spring

官方给出的介绍时:一种分层的JavaEE应用一站式的轻量级开源框架,以控制反转(IoC)和面向切面编程(AOP)为内核,提供了表现层SpringMVC,持久层SpringJDBC以及业务参事务管理等众多企业级应用技术

说白了,就是公司做Java项目的时候用这个框架特方便,具体怎么方便,接着看

Spring特点

  • 方便解耦,简化开发*

    Spring提供IoC容器(注意:区分简介中内核的IoCIoC容器是一种服务,而IoC是一种开发思想),可以将对象之间的依赖关系交给Spring来控制,避免耦合度高。

  • 声明式事务的支持*

    通过Spring声明式事务灵活的进行事务管理,提高开发效率和质量

  • 方便集成各种优秀的框架

    比如最开头我们所说的SSM,拆开看就是Spring(大总管)+SpringMVC(门面)+Mybatis(数据仆人)。并且还有许多框架例如:Hibernate、Stucts等。

Spring体系结构

(1)核心层(Core)

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

(2)AOP层

  • AOP:面向切面编程,它依赖核心层容器,目的是在统一处理与业务逻辑无关的但项目中不可缺少的代码
  • Aspects:切面,AOP是思想,Aspects是对AOP思想的具体实现。我的理解,类似于OOP中的类

(3)数据层(DAO)

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

(4)Web层

  • 这一层主要是SpringMVC框架,主要涉及表现层

(5)Test层

  • Spring主要整合了Junit来完成单元测试和集成测试

以上就是对于Spring的基本概念,关于spring的学习,对于Java开发者是非常重要的,后续还会有更多关于spring的知识点。大家敬请期待!