Spring介绍

105 阅读3分钟

1、什么是spring

spring是2003年兴起的轻量级(相对EJB而言) Java开源框架。

2、什么是EJB

什么是EJB:维基百科(企业级JavaBean(Enterprise JavaBean, EJB,或称Jakarta Enterprise Beans)是一个用来构筑企业级应用的服务器端可被管理组件。)

3、spring官网以及生态产品

  • spring.io/ spring官网
  • 这是目前spring所有的生态产品,其中其他的产品都依赖 Spring Framework

4、spring架构图

Spring架构图:

4.1、Core Container(核心容器

Core Container(核心容器) :这个是整个框架的基础部分,提供了Ioc,依赖注入,这里最核心的概念就是BeanFactory。

  • Core:这里主要提供了Spring框架基本的核心工具类,Spring其他组件都需要用到这个包里面的类,它是其他组件的核心,如果有需要,我们也可以在自己的项目中单独引用core这个模块
  • Beans:Ioc核心的东西都在这个模块中,包括Bean的创建和管理,配置文件的访问等等
  • Context:这个模块构建于Core和Beans之上,提供了许多扩展功能,例如:事件,国际化等
  • SpEl:提供了强大的表达式语言,可以在代码运行的时候去查询和操作对象

4.2、Data Access/Integration(数据访问和通信)

Data Access/Integration(数据访问和通信) :这个模块主要包含了JDBC、ORM、OXM、JMS、Transaction这些模块

  • JDBC:这个模块提供了JDBC的抽象层,这个JDBC抽象层可以消除冗长的JDBC代码,自动解析各个数据库厂商的错误代码。
  • ORM:对象关系映射,常见的Mybatis、JPA、Hibernate都属于ORM框架。Spring中的ORM为这些数据库框架提供了一个交互层,原本利用这些数据库框架操作数据库的时候,不同的框架写法不同,以事务为例,不同框架对数据库事务的处理逻方式定是不同的,Spring ORM框架就把这些通用的操作封装起来了,以事务为例,以后无论使用哪个数据库框架,都可以通过几个简单的注解来添加事务。
  • OXM:这个模块提供了Object/XML映射实现的抽象层,这个模块的映射实现包括JAXB、XML Beans等 (现在前后端分离都是通过JSON进行交互了,所以这块使用的很少了)
  • JMS:Java Messaging Service,封装了一些消息中间件的操作。
  • Transaction:事务处理。这个模块支持编程式事务和声明式事务。Spring中的tx实质上是定义了一套规范,任何开发者都可以为之提供自己的实现,所以@Transaction不仅可以加在关系数据库上,也可以添加在消息中间件上。

4.3、Web模块

Web:这个模块主要提供了Web开发的相关支持。

  • WebSocket:全双工通信工具。传统的HTTP通信,只能是客户端发送消息给服务端,服务端给客户端响应,服务端是无法直接推送消息给客户端的。但是在具体的项目实践中,我们往往需要服务端主动给客户端推送消息,例如:一些即时通信项目、聊天等等。Java EE里边从Servlet3开始是支持WebSocket的,但是原生的写法比较麻烦,所以推出了WebSocket工具,借此可以简化WebSocket开发。
  • Web:支持Web开发的一些基础特性,如文件上传、监听器等
  • Servlet:一般就是我们常说的Spring MVC。
  • Porlet:提供了Porlet环境和Servlet模块的MVC实现。

4.4、AOP模块

AOP:面向切面变成。

  • Aspects:提供了对AspectJ的集成支持。
  • Instrumentation:这个模块提供了 class instrumentation支持和classloader的实现,使得可以在特定的服务器上使用。

4.5、Test模块

Test模块:测试模块,支持Junit和TestNG对Spring组件进行测试。

5、总结:

5.1、Spring生态包含哪些产品

5.2、最重要的Spring Framework,其余产品都需要依赖它

5.3、Spring Framework 架构