热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于java:Spring生态简介

目录概述我的项目阐明次要我的项目社区我的项目保留项目最初总结概述做Java开发的人一提起Spring,首先在脑海中浮现出的就是“IoC”,“AOP”,“SpringMVC”,“SpringSecurit

目录
概述
我的项目阐明次要我的项目社区我的项目保留项目
最初总结
概述
做Java开发的人一提起Spring,首先在脑海中浮现出的就是“IoC”,“AOP”,“Spring MVC”,“Spring Security”等等这些名词,甚至大有“无Spring不Java”的感叹。
实际上,时至今日Spring已不再是一个简略的编程框架了,从最后的“SSH框架”倒退到明天,Struts和Hibernate都简直快要从程序员视线中隐没了,而Spring却倒退成了一个十分宏大且残缺的生态。
所以说,除非特地指明是Spring生态中的某个具体框架,否则提起“Spring”应该指的是整个Spring生态。
说句不夸大的话,Java程序员只有精通了Spring,也就把握了Java开发的精华。

在整个Spring生态中蕴含了许多利用在特定场景的具体框架,如:“Spring Framework”,“Spring Security”,“Spring Boot”,“Spring Cloud”等等,其中“Spring Framework”框架是整个生态的外围根底,其余框架都须要依赖“Spring Framework”提供的根底性能,而且每个框架都有本人独立的代码仓库。

我的项目阐明
Spring生态下的我的项目分为3类:次要我的项目(Main Projects),社区我的项目(Community Projects),曾经终止然而目前还保留的我的项目(Projects in the Attic)。
最新的Spring生态我的项目列表详见:https://spring.io/projects 。

次要我的项目
目前,Spring生态中蕴含22个次要沉闷的我的项目。

Spring生态简介
1.Spring Framework

Spring Framework我的项目是整个Spring生态的根底,蕴含了Spring最外围的性能,如:IoC,AOP,Spring MVC等,其余我的项目都须要依赖Spring Framework。
另外,还须要留神的是Spring Framework我的项目又蕴含多个子模块,如:spring-core,spring-beans,spring-context,spring-aop,spring-web,spring-webmvc等等。实际上,Spring Framework我的项目是一个模块化的架构,各模块之间又存在依赖关系。咱们在Java Web后盾我的项目中应用得最多的Spring MVC实际上就是模块spring-webmvc,它与其余模块的依赖关系如下所示:

Spring生态简介
显然,spring-webmvc模块依赖spring-context,spring-aop和spring-web。

Spring生态简介
2.Spring Boot

Spring Boot是一个开发基于Spring的脚手架我的项目,它默认集成了嵌入式Tomcat,配置注解化,反对疾速集成第三方开发组件(如MyBatis),大大降低了应用Spring的门槛,而且内置了许多能够间接用于生产环境的性能,是目前用于开发微服务架构我的项目的不二抉择。
值得注意的是: 许多人刚接触Spring Boot的人把它神话了,诚然应用Spring Boot能疾速开发一个强壮的、可间接运行的我的项目,然而它的外围和根底来源于Spring Framework。对于重度依赖Spring的开发人员,应该先去吃透Spring Framework,只有真正把握了Spring Framework中各个模块的实现原理,对于在理论开发中应用Spring Boot遇到的问题也就迎刃而解了。

3.Spring Cloud

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

4.Spring Cloud Data Flow

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

5.Spring Data

Spring Data旨在提供一套基于Spring编程模型的数据拜访API,是一个数据拜访框架汇合,其中蕴含了多个具体的反对不同形式拜访特定数据库类型的子模块,如:Spring Data JDBC(应用JDBC形式拜访关系型数据库),Spring Data MongoDB(拜访MongoDB数据库)等。
这个模块的性能相似于MyBatis这样的专门的ORM框架,在理论开发中能够依据需要进行灵便抉择。

6.Spring Integration

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

7.Spring Batch

Spring Batch是一个轻量级的批处理框架,旨在开发对企业零碎日常经营至关重要的弱小批处理应用程序。
反对事务管理,提供了基于Web的治理接口。

8.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须要依据理论需要来决定。

9.Spring HATEOAS

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

10.Spring REST Docs

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

11.Spring AMQP

Spring AMQP我的项目旨在将外围的Spring概念利用于基于AMQP的消息传递解决方案的开发中,它提供了一个“模板”的形象用于发送和接管音讯。

12.Spring Mobile

Spring Mobile是对Spring MVC的扩大,旨在简化挪动Web利用的开发。
Spring Mobile能够检测出以后申请应用的设施是PC、还是手机或者是平板以及用户设施是安卓平台还是iOS平台,而后依据申请设施的不同,返回适宜该设施的视图。

13.Spring For Android

尽管官网的说法是Spring For Android旨在简化原声Android利用的开发,但其实这个有点太过于牵强。
Spring For Android提供了2个对原生Android利用开发的反对:
(1)提供了一个REST客户端
(2)反对拜访平安API时的认证

14.Spring Web Flow

Spring Web Flow次要利用于须要在Web页面上创立疏导用户执行相似“下一步”这样的基于流程的利用场景,该框架构建于Spring MVC之上。

15.Spring Web Services

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

16.Spring LDAP

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

17.Spring Session

Spring Session提供了治理用户Session信息的API和对应实现,Spring Session使得反对集群会话变得简略,而不依赖于特定于应用程序容器的解决方案。
简略来讲,传统的Session计划依赖于特定的容器(如:Tomcat),Spring Session就是提供独立于特定容器的Session解决方案。
其实,针对Tomcat容器,Session集群化也有一个开源计划:tomcat-redis-session-manager。

18.Spring Shell

Spring Shell用于开发基于命令行交互的利用。

19.Spring FLO

Spring FLO是一个Javascript类库,是Spring Cloud Data Flow中流构建器的根底。

20.Spring Kafka

Spring Kafka用于在Spring我的项目中与Kafka交互。

21.Spring Statemachine

Spring Statemachine是一个为开发人员在Spring我的项目中应用状态机的框架,帮忙开发者简化状态机的开发过程,让状态机构造更加层次化。

22.Spring IO Platform

简略来说,Spring IO Platform是一个对我的项目依赖进行对立版本治理的工具。实质就是一个pom文件,它记录了Spring我的项目和其它第三方库对应的版本信息。

社区我的项目
社区我的项目目前只有2个:Spring ROO,Spring Scala。

1.Spring ROO:这是一个开发工具包,旨在疾速构建一个Java利用。
2.Spring Scala:反对在Scala中应用Spring框架。

保留项目
某些我的项目曾经终止了,然而依然保留着,不用赘述。

最初总结
Spring是一个生态系统,提供许多有用的编程框架或工具集。
本文的目标不在于具体介绍Spring生态的每一个我的项目,而是通过一个全面的整顿,对Spring生态有一个残缺的意识,在理论中依据须要灵便抉择对应的组件来应用即可。
能够明确的是,当下最为风行的Spring我的项目是这4个:Spring Framework,Spring Security,Spring Boot,Spring Cloud。
如下图所示,再次对Spring生态做一个概括性总结。

如果本文对你有帮忙,别忘记给我个3连 ,点赞,转发,评论,

咱们下期见!答案获取形式:已赞 已评 已关~

学习更多JAVA常识与技巧,关注与私信博主(666)


推荐阅读
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
author-avatar
不乱于心丨不困于丶情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有