那些你该了解的Spring子项目

去年年底,Spring Framework正式发布了3.2GA版本,距离3.1版的发布时间正好相隔一年,而距离最早的Sprig Framework 1.0 Final发布也 已8年有余。现在的Spring几乎成了Java项目中的“标配”,被运用于大大小小的系统之中。它出众的模块化特性让人们可以仅仅使用需要的部分,所以 很多开发者往往只了解Spring核心框架中的IoC和AOP,有的还用了数据访问和MVC部分,而不关心其他内容,更不用提它的子项目了。

 

 

在首次SpringOne中国大会上,几位Spring开发团队的成员表示Spring核心框架的发布之所以间隔时间越来越大,正是因为越来越多的 功能被放到了子项目中独立开发,所以这些子项目才变得愈发重要起来。比如,现在日益流行起来的Spring Batch、Spring Integration和Spring Data,正如Mark Pollack博士在接受采访时所表示的那样:

Mark Pollack 写道
我们一直在持续追踪Maven上的下载统计信息,这些项目的下载量都是呈指数级增长的。我最近没有关注,但我认为,Spring Integration和Spring Batch的流行程度比较接近。Spring Data JPA是最流行的项目,虽然NoSQL的讨论很热烈,但企业开发者还是在使用关系型数据库,所以对这个结果我们并未感到太吃惊。我们的MongoDB支持、Redis支持最近也越来越流行了,还有Neo4j,它们的成长曲线很漂亮,终会和Spring Integration和Spring Batch一样流行的。

虽然我们无法了解详细的下载统计数据,不过通过Google Trends,还是可以对这三个子项目关注度的发展趋势有所了解。

Spring Data

Spring Framework中的数据访问模块对JDBC及ORM提供了很好的支持,随着NoSQL和BigData的兴起,出现了越来越多的新技术,比如非关系型数据库、MapReduce框架,Spring Data正 是为了让Spring开发者能更方便地使用这些新技术而诞生的“大”项目——它由一系列小的项目组成,分别为不同的技术提供支持,例如Spring Data JPA、Sprng Data Hadoop、Spring Data MongoDB、Spring Data Redis等等。通过Spring Data,开发者可以用Spring提供的相对一致的方式来访问位于不同类型的数据存储中的数据。

 

除了新技术,Spring Data还为传统的关系型数据库提供了很多额外的支持,让开发者能够更好地利用关系型数据库,比如对Oracle RAC的支持。

Spring Batch

Spring Batch是一款专门针对企业级系统中的日常批处理任务的轻量级框架,能够帮助开发者方便地开发出强壮、高效的批处理应用程序。瑞友科技IT应用研究院副院长池建强是这样介绍Spring Batch的:

池建强 写道
Spring Batch是一款优秀的、开源的大数据量并行处理框架。通过Spring Batch可以构建出轻量级的、健壮的并发处理应用,支 持事务、并发、流程、监控、纵向和横向扩展,提供统一的接口管理和任务管理。

 

Spring Batch对批处理任务进行了一定的抽象,它的架构可以大致分为三层,自上而下分别是业务逻辑层、批处理执行环境层和基础设施层。构建于Spring Framework之上,Spring Batch可以很好地利用Spring带来的各种便利,同时也为开发者提供了相对熟悉的开发体验。

 

很多人在了解了Spring Batch的流程控制和定义部分时,都会将其和工作流引擎混淆在一起。针对这个问题,Spring Batch的开发者Josh Long(他同时也是开源工作流引擎Activiti的贡献者)做出了这样的解释:

Josh Long 写道
Spring Batch更多地关注于大规模的批处理任务,例如,它提供了很多方法来读取大型的文件(比如1GB的CSV、XML文件),在数据库中加载或更新几万甚至几十万条记录。试想,一个对大规模批处理并不熟悉的开发者很可能会直接select出所有记录,以至于拖垮整个系统,而使用了Spring Batch,框架会帮助他每次捞取一部分记录进行分页,在更新时分批进行提交……

 在处理大任务时,还可以根据需要,将任务拆成多个部分分配到不同的服务器上进行处理,随后再整合结果。其可扩展性和灵活性由此就已可见一斑了。

Spring Integration

在企业软件开发过程中,经常会遇到需要与外部系统集成的情况,这时可能会使用EJB、RMI、JMS等各种技术,也许你会引入ESB。如果你在开发时用了Spring Framework,那么不妨考虑Spring Integration——它为Spring编程模型提供了一个支持企业集成模式(Enterprise Integration Patterns)的扩展,在应用程序中提供轻量级的消息机制,可以通过声明式的适配器与外部系统进行集成。

 

Spring Integraton中有几个基本的概念——Message(带有元数据的Java对象)、Channel(传递消息的管道)和Message Endpoint(消息的处理端)。在处理端可以对消息进行转换、路由、过滤、拆分、聚合等操作;更重要的是可以使用Channel Adapter,这是应用程序与外界交互的地方,输入是Inbound、输出则是Outbound,可选的连接类型有很多,比如AMQP、JDBC、 Web Services、FTP、JMS、XMPP、多种NoSQL数据库等等。只需通过简单的配置文件就能将所有这些东西串联在一起,实现复杂的集成工作。

 

Spring还有很多其他子项目,比如:

 

  • Spring Security(早期也叫Acegi),是较为成熟的子项目之一,是一款可定制化的身份验证和访问控制框架
  • Spring Roo,快速应用程序开发工具,可以在短时间内方便地生成应用程序
  • Spring Mobile,对Spring MVC的扩展,旨在简化移动Web应用的开发
  • Spring for Android,用于简化Android原生应用程序开发的Spring扩展

大家可以访问SpringSource的项目页面或者它们的GitHub了解更多信息。您使用过哪些Spring子项目呢,不妨也和大家分享一下吧。

 

(本文首发于InfoQ中文站,地址为:http://www.infoq.com/cn/news/2013/01/spring-subprojects ,其实最近写的东西都是先发在InfoQ上,想过几天发博客,结果事情一多就忘了,就挑几篇自己感觉还行的集中搬一次吧。)

Python爬虫:如何抓取亚马逊商品评论和评分 通过本文的学习,您已经掌握了如何使用Selenium爬取亚马逊商品的评论数据,并处理反爬虫机制。特别是在亚马逊这样的大型电商平台,商品评论和评分不仅能够反映产品的质量和顾客的体验,还可以对商家进行竞争分析。通过爬取亚马逊的商品评论,您可以获得有价值的市场信息,如产品的优缺点、消费者的反馈等。通过查看源代码,您可以发现,亚马逊的商品评论和评分数据往往通过JavaScript动态加载,这也意味着在抓取时需要使用Selenium或Playwright等工具来模拟浏览器加载。亚马逊的评论页面支持分页加载。 阅读详情

相关推荐

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2074

Spring子项目了解

1.Spring IO PlatformSpring IO 是可集成的,构建现代化应用的版本平台。Spring IO 是模块化的,企业级的分布式系统,包括了一系列的依赖,使得开发者仅能对自己所需的部分进行完全的部署控制。Spring IO 是 100% 开源,可靠和模块化的。 主要特性: 一个平台,多个工作负载 - Web 构建,集成,批处理,响应式或者大数据应用 极致简化 Spring Bo

千里之行始于足下 1337

ESP32 WiFi自平衡小车硬件与PID控制实战

自平衡小车是典型的嵌入式实时反馈控制系统,其核心依赖姿态感知(如MPU6050)、电机驱动(如L298N)与闭环控制算法(如PID)的协同。系统通过IMU采集俯仰角,经互补滤波融合处理,再由PID控制器实时计算PWM输出,驱动直流电机产生恢复力矩;WiFi模块(ESP32内置)则提供远程遥控接口,实现AP模式下的Web指令交互。该架构兼具硬实时性(毫秒级采样与响应)与软实时性(HTTP服务),广泛应用于机器人教学、智能小车开发及边缘控制原型验证。本文围绕ESP32平台,详解传感器接口、驱动电路设计、PID抗

weixin_42509513的博客 391

Spring子项目

Spring用有众多的子项目,它们构建起一个丰富的企业级应用解决方案的生态系统。在这个生态中,从配置到安全,从普通Web应用到大数据,用户总能从中找到一个适合自己的子项目。对应spring的应用开发者老说,了解这些子项目,可以更好的使用Spring。下面总结了Spring的子项目。 Spring IO Platform : Spring IO是可集成的、构建现代化应用的版本平台。Spr...

XxieYyuHhui的博客 919

第一章 Cheat Enginee(CE)使用指南

Cheat Engine核心功能详细说明(以植物大战僵尸为例) 教你修改单机游戏。

m0_74545731的博客 1万+

Skynet 框架面试题

本文整理了游戏服务端开发面试中 Skynet 框架的高频考点,涵盖底层架构、消息派发、协程调度、网络 I/O、harbor 跨机通信、内存管理、socket 处理、阻塞操作、错误处理等核心内容。全面覆盖 Skynet 框架的原理、使用和实战问题,追求深入准确,拒绝八股文。

小赖的博客 381

一句话概括下spring框架及spring cloud框架主要组件

作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术。spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作了。Spring Boot:旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,...

1206

逆向分析PerimeterX px3:从混淆JS到生成有效令牌的完整实战

在Web安全与数据采集领域,反自动化防护是保障服务稳定和数据安全的关键技术。其核心原理是通过收集浏览器环境指纹和用户行为特征,动态生成加密令牌来区分真人用户与自动化脚本。这项技术的工程价值在于平衡安全性与用户体验,广泛应用于电商、金融、社交等需要防止恶意爬虫和自动化攻击的场景。本文聚焦于业界广泛部署的PerimeterX px3防护方案,通过JavaScript逆向工程,深入剖析其令牌生成机制。我们将探讨如何运用动态调试、反混淆工具和算法还原等关键技术,突破px3的防护壁垒,为自动化测试和数据采集提供稳定可

diankui6178的博客 525

spring之spring的子项目

spring之spring的子项目 ----------     spring不只是应用程序框架。也是平台,它拥有一些开源的项目,这些项目构建于核心的spring framework项目之上。   1.SpringIDE : 这个项目提供了一个Eclipse插件。这个插件能够提高开发spring Bean配置文件的效率。从2.0版本开始,SpringIDE也支持spring AOP和s...

fhd001的专栏 239

YOLOv11改进 | 检测头篇 | 利用动态蛇形卷积DySnakeConv改进yolov11分割检测头(全网独家首发,Segment)

本文给大家带来的最新改进机制是一种我进行优化的专用于分割的检测头,在分割的过程中,最困难的无非就是边缘的检测,动态蛇形卷积(Dynamic Snake Convolution)通过自适应地聚焦于细长和迂回的局部结构,准确地捕捉管状结构的特征。这种卷积方法的核心思想是,通过动态形状的卷积核来增强感知能力,针对管状结构的特征提取进行优化,所以将这个卷积针对于YOLOv11的分割头进行融合是非常合适的,当然本文的检测头也支持用于目标检测,但是我将其设计出来是主要为了分割的读者使用的。

Snu77的博客 3430

【Autosar从入门到精通到进阶实战篇】75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

文章摘要:UDS刷写流程0x34/0x36/0x37关键实现要点 本文通过一个真实ECU变砖案例,揭示了UDS刷写服务(0x34请求下载、0x36传输数据、0x37请求退出)的实现陷阱与最佳实践。核心要点: 安全架构设计: 0x34阶段只协商参数,不立即擦除Flash 采用缓冲区暂存数据,避免频繁写Flash 严格检查地址对齐和内存边界 关键改进措施: 实现数据包序列号校验(防错位) 传输层缓冲区溢出保护 0x37阶段必须包含完整性校验(如CRC32) 一次性批量写入Flash,减少擦写次数 典型错误模式:

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 70

值得一读的文章:那些你该了解的Spring子项目

去年年底,Spring Framework正式发布了3.2GA版本,距离3.1版的发布时间正好相隔一年,而距离最早的Sprig Framework 1.0 Final发布也已8年有余。现在的Spring几乎成了Java项目中的“标配”,被运用于大大小小的系统之中。它出众的模块化特性让人们可以仅仅使用需要的部分,所以很多开发者往往只了解Spring核心框架中的IoC和AOP,有的还用了数据访问和MV...

苏显斌的Java空间 174

Python与.NET革命性互操作:PythonNet实现零门槛双向调用——深度解析与实战案例

跨语言调用实战指南:Python与.NET深度集成 摘要:本文详解Python与.NET双向互调技术,通过PythonNet和Python.Runtime实现高效跨语言协作。核心优势包括:无缝集成Python机器学习模块(如PaddleOCR)与.NET UI框架,内存直传提升90%数据效率,减少80%重复代码。内容涵盖:1)Python调用.NET类库的完整流程;2)C#动态加载Python脚本及环境配置要点;3)反射机制实现私有方法调用与泛型处理;4)性能优化技巧(类型缓存、NumPy数组转换);5)异

墨夶的博客 611

spring技术内幕 读书笔记(一)

spring技术,spring源码,spring心得,spring,读书笔记

steven的博客 966

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

了解Spring Boot的基础知识。

了解Spring Boot的核心,配置及优点什么是Spring Boot ?Spring Boot的核心功能。Spring Boot的优缺点。Spring Boot的配置方式。SpringBoot创建过程。springboot的三种启动方式。 什么是Spring Boot ? Spring Boot是Spring的子项目,Spring Boot是为了解决Spring的缺点而生的,主要是简化了使用 ...

Drzwl的博客 212

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

基于Spring Boot和Spring Cloud实现微服务架构

官网的技术导读真的描述的很详细,虽然对于我们看英文很费劲,但如果英文不是很差,请选择沉下心去读,你一定能收获好多。我的学习是先从Spring boot开始的,然后接触到微服务架构,当然,这一切最大的启迪还是感谢我的一个老师,是他给我指明了新的道路,让我眼前一亮,再次感谢。 Spring 顶级框架 谈及微服务,作为当前主流的企业框架Spring,它提供了一整套相关的顶级项目,能让开发者快速的上手实现...

weixin_34144848的博客 93

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

maven--spring-boot-starter-parent

在项目的顶层pom.xml和spring的官网教程都会加入 parent> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-parentartifactId> version>1.5.9.RELEASEversion> parent> 你是否曾经也困惑这是要干啥? 这是

老专家的博客 2万+

父子项目(生产者,消费者)

先安装ancos,并且打开 如何创建在上一篇文章 创建父项目 在父项目的pom文件中加入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a

yyLOVEdm的博客 265
上一篇: 那些你该了解的Spring子项目
下一篇: 每周推荐阅读2013Q1汇总
dingx
博客等级 码龄24年 67粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值