Spring 概述

一、Spring概述

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to, or even replacement for the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于Java企业版平台构建的 Web 应用提供了大量的拓展支持。虽然 Spring 没有直接实现任何的编程模型,但它已经在 Java 社区中广为流行,基本上完全代替了企业级JavaBeans(EJB)模型。且Spring框架是开源的。

二、Spring的模块

在这里插入图片描述

Spring是模块化的,这意味着你可以只使用你需要的Spring模块。

Core ContainerAOPMessaging
Spring-Core核心工具类,其他模块大量使用Spring-CoreSpring-AOP基于代理的AOP支持Spring-Messaging对消息架构和协议的支持
Spring-Beans定义对Bean的支持Spring-Aspects基于AspectJ的AOP支持
Spring-Context运行时的Spring容器
Spring-Context-SuppotSpring容器对第三方包的集成支持
Spring-Expression使用表达式语言在运行时查询和操作对象
WebData AccessTest
Spring-web提供基础的web集成的功能Spring-JDBC提供以JDBC访问数据库的支持Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。
Spring-Webmvc提供基于Servlet的SpringMVCSpring-TX提供编程式和声明式的事务支持
Spring-WebSocket提供WebSocket功能Spring-ORM提供对对象/关系映射技术的支持
Spring-Webmvc-Portlet提供Portlet环境支持Spring-OXM提供对对象/xml映射技术的支持
Spring-JMS提供对JMS的支持
三、Spring的生态
1.Spring Boot

Spring Boot是一个开发基于Spring的脚手架项目,它默认集成了嵌入式Tomcat,配置注解化,支持快速集成第三方开发组件(如MyBatis),大大降低了使用Spring的门槛,而且内置了许多可以直接用于生产环境的功能,是目前用于开发微服务架构项目的不二选择。

2.Spring Cloud

Spring Cloud为开发基于微服务架构的软件系统提供了一整套工具集合,其中包含了开发各个微服务组件的具体项目,如:Spring Cloud Config(配置中心),Spring Cloud Netflix(服务注册中心),Spring Cloud Sleuth(服务调用监控),Spring Cloud Gateway(服务网关)等等。
Spring Cloud的基础是Spring Boot,基于Spring Boot可以大大简化开发各微服务组件的流程。

3.Spring Cloud Data Flow

Spring Cloud Data Flow用于构建在云环境或K8S中基于微服务的实时或批数据处理架构,具体来讲就是支持一系列需要进行数据处理的场景,如:ETL,数据导入/导出,事件流,预测分析等等。

4.Spring Data

Spring Data旨在提供一套基于Spring编程模型的数据访问API,是一个数据访问框架集合,其中包含了多个具体的支持不同方式访问特定数据库类型的子模块,如:Spring Data JDBC(使用JDBC方式访问关系型数据库),Spring Data MongoDB(访问MongoDB数据库)等。

5.Spring Integration

Spring Integration的目的是提供一个简单的模型,用于构建企业级应用集成解决方案。

6.Spring Batch

Spring Batch是一个轻量级的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。
支持事务管理,提供了基于Web的管理接口。

7.Spring Security

Spring Security是用于实现认证和授权,以及访问控制的安全框架,在Java生态与之提供类似的功能还有一个框架:Apache Shiro。
Spring Security依赖于Spring Framework,也就是说如果要Spring Security,那么应用架构也必须是基于Spring Framework的,这大大限制了Spring Security的使用场景;反之,Shiro就没有这样限制,而且从项目架构上Shiro更加简洁。当然,Spring Security提供了非常丰富的安全控制的功能,在某些方面甚至比Shiro更加完善,与之对应的是掌握的Spring Security的复杂度比较大。因此,对于在应用中是否选择Spring Security需要根据实际需求来决定。

8.Spring HATEOAS

如果Web应用基于Spring框架(即:使用了Spring MVC)开发,那么可以直接使用Spring HATEOAS来开发满足HATEOAS约束的RESTFul服务。
这里需要理解一个单词简写:“HATEOAS”。HATEOAS(Hypermedia as the engine of application state)是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应,而 REST 服务本身的演化和更新也变得更加容易。

9.Spring REST Docs

Spring REST Docs是一个文档工具,用于为REST架构风格的Web服务自动生成相应的文档,这样可以解放开发者专门撰写API文档的工作。

10.Spring AMQP

Spring AMQP项目旨在将核心的Spring概念应用于基于AMQP的消息传递解决方案的开发中,它提供了一个“模板”的抽象用于发送和接收消息。

11.Spring Mobile

Spring Mobile是对Spring MVC的扩展,旨在简化移动Web应用的开发。
Spring Mobile可以检测出当前请求使用的设备是PC、还是手机或者是平板以及用户设备是安卓平台还是iOS平台,然后根据请求设备的不同,返回适合该设备的视图。

12.Spring For Android

官方的说法LSpring For Android旨在简化原声Android应用的开发,Spring For Android提供了2个对原生Android应用开发的支持:
(1)提供了一个REST客户端
(2)支持访问安全API时的认证

13.Spring Web Flow

Spring Web Flow主要应用于需要在Web页面上创建引导用户执行类似“下一步”这样的基于流程的应用场景,该框架构建于Spring MVC之上。

14.Spring Web Services

Spring Web Services用于开发WebService服务,类似的框架如:Apache CXF,Apache Axis2。

15.Spring LDAP

Spring LDAP是一个工具,用于为基于Spring的应用程序使用LDAP(Lightweight Directory Access Protocol)协议。

16.Spring Session

Spring Session提供了管理用户Session信息的API和对应实现,Spring Session使得支持集群会话变得简单,而不依赖于特定于应用程序容器的解决方案。

and so on…
更多请看 https://spring.io/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜鹊先生Richard

随缘~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值