Spring的生态圈、Spring全家桶

2023-11-01

Springboot是伴随spring4诞生的,除了springboot之外,spring作为企业级应用开发的轻量级解决方案提供了许多子项目;这些子项目可以更好地理解其设计架构、思想并使用spring,spring的整个生态系统包括以下内容。

1. Spring Framework(Core)

Spring的核心项目,其中包含了一系列IoC容器的设计,提供了依赖注入的实现,同时,还集成了AOP,提供了面向切面编程的实现;当然还有MVC、JDBC、事务处理模块的实现。

2. Spring boot

提供了快速构建Spring应用的解决方案,达到“开箱即用”;使用默认的Java配置来实现快速开发,并“即时运行”。

3. Spring Batch

提供构建批处理应用和自动化操作的框架,专门用于离线分析程序、数据批处理等场景。

4. Spring Data

对主流的关系型数据库提供支持,并提供使用非关系型数据库的能力,如将数据存储在非关系型数据库或MapReduce中的分布式存储、云计算存储环境等。

5.Spring Security

通过用户认证、授权、安全服务等工具保护应用,它最先在spring社区中的名字四Acegi框架。

6.Spring Security OAuth

OAuth是一个第三方的模块,提供了一个开放的协议的实现,通过这个协议前端应用可以对Web应用进行简单而标准的安全调用。

7.Spring Web Flow

基于Spring MVC提供Web应用开发。它是Web工作流引擎,定义了一种特定的语言来描述工作流;同时高级的工作流控制器引擎可以管理会话状态。

8.Spring BlazeDS Intergration

提供Spring 与 Adobe Flex 技术集成的模块。

9.Spring Dynamic Modules

提供Spring 运行在OSGi平台上面向Java的动态模型系统,Eclipse就是构建在OSGi平台上的。

10.Spring Intergration

通过消息机制为企业的数据集成提供了解决方案。

11.Spring AMQP

高级消息队列协议( Advanced Message Queuing Protocol),支持Java和.NET两个版本。AMQP是一个提供统一消息服务的应用层标准高级消息队列协议,是一个开放标准,为面向消息的中间件设计,如RabbitMQ等。SpringSource旗下的Rabbit MQ就是一个开源的AMQP的消息服务器,RabbitMQ使用 Erlang语言开发的。

12.Spring .NET

为.NET提供与Spring相关的技术支持,如IoC容器、AOP等。

13.Spring for Android

为Android终端开发应用提供Spring支持

14.Spring Mobile

为移动终端的服务器应用开发提供支持

15.Spring Social

Spring框架的扩展,提供与社交网SNS服务API(如FaceBook、新浪微博和Twitter等)的集成。

16.Spring XD

用来简化大数据应用开发

17.Spring Cloud

为分布式系统开发提供工具集。

18.Spring HATEOAS

基于HATEOAS原则简化REST服务开发。HATEOAS是“超文本驱动”(Hypermedia As The Engine of Application State)的英文缩写,又名“将超媒体作为应用状态的引擎”。

19.Spring Web Services

提供了基于协议有限的SOAP/Web服务。SOAP是简单对象访问协议(Simple Object Access Protocol)的缩写。

20.Spring LDAP
简化使用LDAP开发。LDAP是轻量级目录访问协议(Lightweight Directory Access Protocol)的英文缩写。

21.Spring Session
提供一个API及实现来管理用户会话信息。

以上21个就是spring的扩展,是spring的生态圈,帮助我们为企业级开发提供了强有力的工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring的生态圈、Spring全家桶 的相关文章

  • 如何让Spring RabbitMQ创建一个新的队列?

    根据我对rabbit mq的 有限 经验 如果您为尚不存在的队列创建新的侦听器 则会自动创建该队列 我正在尝试将 Spring AMQP 项目与rabbit mq 一起使用来设置侦听器 但出现错误 这是我的 xml 配置
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • RSA SignatureException:签名长度不正确

    我在签署 rsa 签名时遇到问题 我有一个用私钥加密的签名 然而 当我尝试使用公钥验证它时遇到问题 我得到以下异常 java security SignatureException Signature length not correct
  • 哈希码是否用于加速集合中的对象查找?

    IIUC 相同类型的两个不同对象可以存储在 HashSet 中 即使两个对象在以下情况下返回相同的值 hashCode 叫做 例如根据本文 https eclipsesource com blogs 2012 09 04 the 3 thi
  • 是否可以从另一个方法传递 args[] 来调用 main 方法?

    我试图从另一个传递参数的方法调用类的主要方法 就像从命令行运行该类时一样 有没有办法做到这一点 您可以致电main方法就像您调用任何其他 静态 方法一样 MyClass main new String arg1 arg2 arg3 Exam
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 如何制作无限的jscrollpane?

    我之前已经实现过拖动滚动 但是创建无限滚动窗格的最佳方法是什么 当然不会有任何滚动条 我将实现拖动滚动 我想做的是在无限表面上实现动态加载 EDIT 当然 它实际上不会是无限的 我想问如何伪造它 您可以执行以下操作 AdjustmentCl
  • SimpleDateFormat 将 lenient 设置为 false 时出现异常

    为什么这段代码会抛出无法解析日期的异常 SimpleDateFormat f new SimpleDateFormat yyyy MM dd T HH mm ss 000Z f setLenient false String dateStr
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 如何从 Google Custom Search API 获取超过 100 个结果

    我正在尝试使用 Google Custom Search API 在 Java 中进行研究 因此 我需要为每个查询提供一个大的结果集 然而 我似乎仅限于前 100 个结果 这比我需要的要少得多 我使用这样的列表方法 list setStar
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • HTTP PUT 在 Java 中上传文件

    Edit 我想我已经弄清楚如何执行二进制数据部分 仔细检查代码 但我很确定我做对了 现在 当我尝试按照中所述完成上传时遇到新错误Vimeo API 文档 http vimeo com api docs upload streaming Ed
  • Java ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 当删除倒数第二个元素时 没有 ConcurrentModificationException List
  • 在Java中多次读取System.in会导致IOException?

    我正在尝试创建一个小命令行游戏来强化我在过去几个月中在 Java 中学到的一些东西 我正在尝试创建一个名为 readInput 的方法 它返回一个我可以一次又一次调用的字符串 第一次它工作正常 但第二次它会导致 IO Exception 如
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 方法签名中带或不带synchronized关键字的方法具有相同的字节码

    对于以下 2 个类 获得相同的 Java 字节码 java版本 java 版本 1 8 0 181 Java TM SE 运行时环境 构建 1 8 0 181 b13 Java HotSpot TM 64 位服务器 VM 内部版本 25 1
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 我找不到 IntelliJ 快捷方式

    我使用 vim 一段时间 我知道有一个 intellij vim 插件 我很好奇内置的 IntelliJ 文本导航存在什么 如何打开实时模板来创建模板 如何查看以 tr 开头的现有模板列表 如何进行全局搜索并在当前文档中进行搜索 然后转到下

随机推荐

  • java的double类型比较相等

    当double类型数据当以带小数自增时出现的问题 public class test public static void main String args double a 0 while a lt 100 a 1 2 System ou
  • svn下载以及操作

    目录 第一步下载SVN及SVN汉化包 SVN下载 SVN汉化语言包下载网址 第二步安装SVN及汉化包 使用说明检出项目 导入项目 关于项目的提交 更新 解决冲突有三种选择 如何降低冲突解决的复杂度 查看日志 版本回滚 版本控制 创建分支合并
  • AIX下中文字符集问题

    1 来自IBM网站 http www 01 ibm com support do 82448256d650040768f2 aix中文字符集 如图 3 如何看到已安装的字符集 locale a4 查看当前的语言环境 env grep LAN
  • 关于ubuntu 64位 android studio 运行时,gradle卡住的问题

    主要是因为缺少相关的32位依赖库 可通过一下方法解决 终端输入以下命令 安装完成后 重启as即可 sudo dpkg add architecture i386 sudo apt get update sudo apt get instal
  • mybatis 3.4.5 常用配置标签 02

    1 properties
  • Pycharm 集成python3 的Qt Designer

    第一步 点击 File Settings 第二步 Tools External Tools 点击 号 第三步 设置Qt Designer 修改三个地方 其他地方默认 Name Qt Designer Programs D python3 6
  • 二线制、三线制、四线制,PT100,电桥(转)

    在工业现场 传感器距离控制器往往很长 所以导线电阻就不能忽略了 于是延伸出热敏电阻或远传压力表的二线 三线 四线制接法 li class tool item tool active is like a href a li
  • 15 Python数据可视化_作业

    Author Nimo Ding Seaborn数据集自带了car crashes数据集 这是一个国外车祸的数据集 1 请对这个数据集进行成对关系的探索 2 请用Seaborn画二元变量分布图 scatter kde hex import
  • python中的base64加密解密

    介绍 Base64是网络上最常见的用于传输8Bit 字节码的编码方式之一 Base64就是一种基于64个可打印字符来表示 二进制数据的方法 可查看RFC2045 RFC2049 上面有MIME的详细规范 Base64编码是从二进制到字符的过
  • C语言中的exit与return的区别

    exit 结束当前进程 当前程序 在整个程序中 只要调用 exit 就结束 exit 0 表示进程正常退出 返回 0 exit 1 表示进程非正常退出 返回 1 exit与return的区别 exit 函数与return语句的最大区别在于
  • 【博客689】监控进程的自愿与非自愿上下文切换

    监控进程的自愿与非自愿上下文切换 场景 有时候遇到机器没有性能瓶颈 但是进程出现性能瓶颈 这时候往往需要进程级别的监控 监控手段 process exporter https github com ncabatoff process exp
  • Python工程师常见的30个基础面试题

    一 Python 的特点和优点是什么 Python 是一门动态解释性的强类型定义语言 编写时无需定义变量类型 运行时变量类型强制固定 无需编译 在解释器环境直接运行 优点 1 解释性 Python 语言写的程序 不需要编译成二进制代码 可以
  • 字库制作和烧写

    文章目录 资源获取 一 介绍字库 1 GB2312 2 GBK 二 生成字库 1 打开字库生成软件 2 软件介绍 3 生成bin字库 三 烧录字库 1 打开串口烧录软件 2 配置软件 3 打开字库文件 4 将烧录程序下载到开发板 5 开始烧
  • MacOs 执行命令行报:permission denied:

    当前目录没有可执行权限 解决方案 代表文件目录 sudo chmod R 777
  • docker安装nacos2.0.3并配置mysql

    1 拉取镜像 docker pull nacos nacos server 2 0 3 2 创建数据目录 mkdir p mydata nacos2 0 3 logs mkdir p mydatadata nacos2 0 3 conf 3
  • Java 包(package)

    为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 包的作用 1 把功能相似或相关的类或接口组织在同一个包中 方便类的查找和使用 2 如同文件夹一样 包也采用了树形目录的存储方式 同一个包中的类名字是不同的 不同的包中的类的名
  • linux安装virtualbox命令,如何在CentOS 7.5上安装VirtualBox

    VirtualBox是一款开源的跨平台虚拟化软件 允许您同时运行多个客户操作系统 虚拟机 在本教程中 我们将向您展示如何从CentOS 7系统上的Oracle存储库安装VirtualBox 前提条件 在继续本教程之前 请确保以具有sudo权
  • 为网站接入前端异常监控系统 Sentry

    背景 众所周知 现在前端异常监控在实际生产环境中越来越重要了 通过给网站接入前端异常监控系统 我们能获得以下几个好处 收集页面的错误信息 辅助定位代码错误位置 在用户报障前发现问题 这对于提升线上系统质量 降低线上故障数量 都具有非常重要的
  • 【mysql基础系列十一】用户权限管理

    用户权限管理 在不同的项目中给不同的角色 mysql客户端用户 通常为开发者 不同的权限 为了保证数据库的数据安全 用户管理 mysql需要客户端进行连接认证才能进行服务器操作 需要用户信息 mysql中所有的用户 指mysql客户端用户
  • Spring的生态圈、Spring全家桶

    Springboot是伴随spring4诞生的 除了springboot之外 spring作为企业级应用开发的轻量级解决方案提供了许多子项目 这些子项目可以更好地理解其设计架构 思想并使用spring spring的整个生态系统包括以下内容