Spring Integration-File Adapter使用

File Adapter主要应用于企业应用程序之间共享文件系统的情况,一个应用写入,而其他应用通过轮询文件系统进行读取。File Adapter从不同的文件系统提取文件再转变成框架的Message并发布至通道中,或者从通道中提取Message再转变为文件并写入文件系统中。

 

一、配置环境

1.下载Spring Integration

http://s3.amazonaws.com/dist.springframework.org/release/INT/spring-integration-2.1.0.RELEASE-dist.zip

 

2.配置classpath依赖的jar

 

spring-integration-core-2.1.0.RELEASE.jar 

spring-integration-file-2.1.0.RELEASE.jar

org.springframework.asm-3.1.0.RELEASE.jar

org.springframework.aop-3.1.0.RELEASE.jar

org.springframework.beans-3.1.0.RELEASE.jar

org.springframework.core-3.1.0.RELEASE.jar

org.springframework.context-3.1.0.RELEASE.jar

org.springframework.context.support-3.1.0.RELEASE.jar

org.springframework.expression-3.1.0.RELEASE.jar

aopalliance-1.0.jar

commons-logging-1.1.1.jar

 

二、XML配置文件:spring-integration-file-context.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
	xmlns:int-file="http://www.springframework.org/schema/integration/file"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	    http://www.springframework.org/schema/integration 
	    http://www.springframework.org/schema/integration/spring-integration-2.1.xsd
        http://www.springframework.org/schema/integration/file
		http://www.springframework.org/schema/integration/file/spring-integration-file-2.1.xsd">
	<!-- 定义通道 -->
	<int:channel id="file-channel"/>
	
	<!-- 文件类型-输入通道适配器 -->
	<int-file:inbound-channel-adapter
		directory="D:/spring-integration-samples/input" channel="file-channel">
	    <int:poller fixed-rate="1000"/>
	</int-file:inbound-channel-adapter>
	
	<!-- 文件类型-输出通道适配器 -->
	<int-file:outbound-channel-adapter directory="D:/spring-integration-samples/output" channel="file-channel"/>
</beans>

 

三、编写测试类

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestFileSupport {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext(
		"spring-integration-file-context.xml");
	}
}

 

四、示例说明

实现功能:每秒间隔轮询D:/spring-integration-samples/input目录,如果发现该目录有文件,就依次复制到D:/spring-integration-samples/output目录中。实际上就是文件copy的功能

该示例使用了Spring Integration提供的File适配器。

 

深入File Adapter

1.防止重复读取:prevent-duplicates="true"

 

<int-file:inbound-channel-adapter
        directory="D:/spring-integration-samples/input" 
        channel="file-channel" prevent-duplicates="true">

 

2.文件过滤:filename-pattern="*.doc"或者filename-regex="[ABC]_positions.doc"

<int-file:inbound-channel-adapter
        directory="D:/spring-integration-samples/input" 
        channel="file-channel" filename-pattern="*.doc">
或者
<int-file:inbound-channel-adapter
        directory="D:/spring-integration-samples/input" 
        channel="file-channel" filename-regex="[ABC]_positions.doc">

 

 

3.文件锁:<file:nio-locker/>

<int-file:inbound-channel-adapter
        directory="D:/spring-integration-samples/input" 
        channel="file-channel" filename-regex="[ABC]_positions.doc">
    <file:nio-locker/>
    ……
</int-file:inbound-channel-adapter>

 

4.删除源文件:delete-source-files="true"

 

<int-file:outbound-channel-adapter 
        directory="D:/spring-integration-samples/output" 
        channel="file-channel" delete-source-files="true"/>

 

实际上还有很多属性用于设置共享文件系统出现的各种情况。这里不再赘述。

sitaFileAdapterTest:使用Spring Integration演示基本文件传输的项目 Sita测试项目 使用Spring Integration演示基本文件传输的项目 任务详情 1.将在目录(C:\ SITA_TEST_TASK \ IN)中放置一系列文件,每行上都有一个数字。 随附一些示例文件(无效和有效)。 我们希望该应用程序通过每5秒轮询一次该文件夹中的新文件来自动处理这些文件。 如果找到了新文件,则应用程序应将文件中的所有数字相加,然后在目录(C:\ SITA_TEST_TASK \ OUT)中创建一个包含结果值的新文件。 输出文件的名称应与输入文件的名称相同,并在文件名的末尾附加.OUTPUT。 成功处理输入文件后,应将其移动到以下目录(C:\ SITA_TEST_TASK \ PROCESSED),并将.PROCESSED附加到文件名的末尾。 如果在处理输入文件时发生错误,则应将输入文件移动到以下目录(C:\ SITA_TEST_TASK \ ERROR 立即下载

相关推荐

spring-integration-file-6.4.5.jar中文-英文对照文档.zip

1、压缩文件中包含: 中文-英文对照文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。

Spring Intergration应用

一、Spring Integration功能概览 集成流是由一个或多个如下介绍的组件组成的。在继续编写代码之前,我们先看一下这些组件在集成流中所扮演的角色: 通道(channel):将消息从一个元素传递到另一个元素。 过滤器(filter):基于某些断言,条件化地允许某些消息通过流。 转换器(transformer):改变消息的值和/或将消息载荷从一种类型转换成另一种类型。 切分器(splitter):将传入的消息切割成两个或更多的消息,然后将每个消息发送至不同的通道; 聚合器(aggregator):切

qq_36412195的博客 1740

告别GitHub!手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器(附SourceTree配置)

本文详细介绍了如何在Windows 10环境下使用Gitblit搭建私有Git服务器,实现局域网内高效代码协作。通过轻量级的Gitblit解决方案,开发者可以享受数据完全自主、离线可用性和局域网高速访问等优势。文章包含从环境准备、安装部署到SourceTree配置的全流程指南,特别适合金融、医疗等敏感行业团队使用。

weixin_30430169的博客 280

Java实时处理 - Spring Integration - MQ Message

Messaging:Messages and channels;Message Endpoints;Splitting and aggregating messages;Routing and filtering; Integrating systems:Handling messages with XML payload;Spring Integration and the Java Message Service (JMS), Email, Filesystem, web service, etc

保持初心 保持好奇 1508

2017全国大学生电子设计大赛B题 | 板球控制系统(四)机械设计相关

转载请注明出处。   转眼2019了诶,可能有些同学又该问了,哇向阳哥,你这个鸽子放的好,转眼大半年了一年都没更新,我也知道啊,说好的源码呢,挖的机械的坑呢?咕咕咕咕我也不想啊,我这不是懒吗!过年有空了,又到了收红包泡妹子玩游戏.......呸,学习准备比赛码代码的时候了,终于有点空闲,于是乎今晚先把机械的大坑填了。     咱话先说在最前面。机械这玩意,靠经验,也考想象力,更要命的还是出了...

王向阳的博客 3万+

告别手册!S32K3XX的eMIOS实战:从GPT定时到PWM输出,一个通道搞定电机控制

本文深入探讨了NXP S32K3XX系列MCU的eMIOS模块在电机控制中的高效应用。通过单通道实现PWM生成、输入捕获和定时中断三大功能,展示了如何简化BLDC电机控制硬件设计。文章结合RTD库与寄存器级编程,提供动态模式切换和性能优化方案,显著降低CPU负载。

weixin_42522374的博客 145

Spring Integration入门

为什么使用Spring Integration\Spring Integration是Spring框架创建的又一个API,面向企业应用集成(EAI)。说到集成,并不缺“解决办法”:硬编码的Java客户端、其它ESB产品,还有消息队列等更加传统的应用集成技术。Spring Integration对以上各种解决方法都有所改进,改进的方式有时还颇具戏剧效果。Spring Integration非常轻量、...

cpongo5 413

2025年前端框架全景解析:React、Vue、Angular的生态与未来之争

前端框架的竞争本质是工程哲学的分野:React的灵活、Vue的简洁、Angular的严谨,分别对应不同场景需求。

科技D人生 4843

Spring Integration 快速入门教程

本文简单演示了基于Java 配置Spring Integration示例,集成应用可以作为单独的应用运行,也可以作为企业级应用的一个部分。虽然它不直接与其他以EAI为中心的产品和模式(如企业服务总线)竞争,但它是一种可行的、轻量级的替代方案,可以解决许多需要构建ESB才能解决的问题。

neweastsun的专栏 8938

如何给数据添加高斯白噪声?

首先测试集应该是加噪声的,至于训练集需不需要加噪声就见仁见智了。我个人测试的结果是,训练集如果不加噪声的话效果特别差,如果加噪声的话效果就比较好接受,大家可以自己试试看。在轴承故障研究中免不了要涉及到给数据主动加入噪声的情况,一般我们加的是高斯白噪声。由于热噪声是由大量自由电子的运动产生的,其统计特性服从高斯分布,故常将热噪声称为高斯白噪声。的频谱是均匀分布的,好像白光的频谱在可见光的频谱范围内均匀分布那样,所以热噪声又常称为。定义一:如果一个噪声,它的瞬时值服从。又是均匀分布的,则称它为高斯白噪声。

weixin_50642818的博客 5220

华为OD机试新系统真题 【LLM推理批次最大化】

华为OD机试 新系统真题【LLM推理批次最大化】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【LLM推理批次最大化】多语言题解。

qq_45776114的博客 566

Spring Integration Message Bus Understanding

Application Internal: Spring Integration Message resides in and queued up as CHANNEL Cross Applications: Via message bus(CHANNEL ADAPTER, TRANSFORMER), Spring Integration Message -> Adapter/Transform

Derek_Zhang_的专栏 960

Diffusion models代码实战:从零搭建自己的扩散模型

这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。.........

沉迷单车的追风少年 1万+

Spring Integration 2.2.0 GA(General Availability)于2012年10月正式发布

Spring Integration 2.2.0 GA(General Availability)于2012年10月正式发布,是Spring Integration框架的一个重要稳定版本。该版本增强了对消息驱动架构的支持,引入了多项新特性与改进,包括:

[Blog][Domain] programb.blog.youkuaiyun.com 957

cartographer如何使用2个反光柱子作为一个landmark

2个反光柱的摆放要求:靠着墙摆,因为我们只能从一侧看到2个反光柱,从两侧都看到至少需要3个反光柱来定位。 landmark检测原理:因为我们是从一侧看到2个反光柱,所以看到2个反光柱在一帧激光数据中会有顺序,有2种情形,如下图 这两种情形,我们发现 情形1: 这种情形2个反光柱子被检测到的激光角度小于180,我们认为大一些激光角度的是原点。 情形2: 这种情形2个反光柱子被检测到的激光角度大于180,我们认为小一些激光角度的是原点。 这样原点就固定下来,并是唯一的。2个反光柱构成的坐标系也就确定了。和激光坐

南北粉面馆 3827

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Spring Integration 5.2.4 是 Spring Integration 框架的一个维护版本,发布于 2020 年初

Spring Integration 5.2.4 是 Spring Integration 框架的一个维护版本,发布于 2020 年初,属于 **Spring Boot 2.2.x / 2.3.x** 和 **Spring Framework 5.2.x** 生态系统的一部分。它是基于 **Enterprise Integration Patterns (EIP)** 的轻量级框架,旨在通过“消息驱动”的方式简化企业应用集成任务,如文件处理、消息队列通信、HTTP 调用、邮件发送等。

[Blog][Domain] programb.blog.youkuaiyun.com 504

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spring Boot集成Mosquitto MQTT:物联网通信实战与最佳实践

MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级物联网通信协议,其核心原理是通过低带宽、低功耗的设计实现设备与服务器之间的高效消息传递。这一特性使其在物联网、移动推送和实时数据采集等场景中具有重要技术价值,尤其适用于资源受限的嵌入式设备和移动网络环境。在实际工程实践中,开发者常使用Mosquitto作为轻量级MQTT代理,并结合Spring Boot构建稳健的后端服务。通过合理配置连接管理、消息质量等级(QoS)和主题设计,可以有效提升系统的

weixin_30268921的博客 385

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

spring 长轮询_Spring集成文件轮询和测试

spring 长轮询 我最近实施了一个小项目,在该项目中,我们必须轮询文件夹中的新文件,然后在文件内容上触发服务流。 Spring Integration非常适合此要求,因为它带有一个通道适配器 ,该适配器可以扫描文件夹中的新文件,然后通过消息传递流程获取文件。 本文的目的是介绍如何测试文件轮询器流。 首先考虑使用以下Spring集成配置实现的简单流程: <beans:be...

最佳 Java 编程 474

Spring集成文件轮询和测试

我最近实施了一个小项目,在该项目中,我们必须轮询文件夹中的新文件,然后在文件内容上触发服务流。 Spring Integration非常适合此要求,因为它带有一个通道适配器 ,该适配器可以扫描文件夹中的新文件,然后通过消息传递流程获取文件。 本文的目的是研究如何测试文件轮询器流。 首先考虑使用以下Spring集成配置实现的简单流程: <beans:beans xmlns=...

最佳 Java 编程 367

SpringBoot集成MQTT实现物联网主题消息发布订阅

MQTT是一种专为低带宽、不稳定的物联网网络设计的轻量级发布/订阅消息协议,其基于事件驱动的异步通信模型显著优于HTTP轮询,在资源受限设备与高并发场景下具备低延迟、低功耗、高扩展性等技术优势;通过Spring Integration MQTT生态可无缝集成QoS策略、持久会话、主题分层路由等核心能力,广泛应用于智能农业、工业传感、远程控制等实时双向通信场景,本文聚焦SpringBoot工程化落地中的主题设计、QoS选型与连接治理等关键实践。

weixin_34054931的博客 290

SpringBoot整合MQTT实战:从发布订阅到连接管理与排坑

在物联网设备接入、服务端消息推送等实时通信场景中,轻量级的发布/订阅模型往往比HTTP轮询和重型消息队列更具性价比。MQTT协议基于Broker转发与Topic路由,通过QoS分级和Session机制平衡可靠性与性能,而Spring Boot生态中的Paho客户端封装能快速构建消息链路。理解ClientId唯一性、心跳保活、cleanSession与自动重连的配合,以及发布网关、注解监听和通配符订阅的实现方式,是避免消息丢失、重复消费和连接被踢的关键。本文结合工程实践,从概念原理到压测排坑,系统梳理Spri

weixin_33778544的博客 141

Spring Boot手动封装Paho MQTT客户端实践

MQTT作为轻量级的物联网通信协议,在设备互联场景中具有低带宽、高效率的优势。其基于发布/订阅模式的工作原理,使得设备间通信更加灵活高效。在Java生态中,结合Spring Boot框架可以快速构建物联网后台服务。通过直接使用Paho原生客户端库进行深度封装,开发者能够突破Spring Boot Starter的限制,实现连接生命周期精细控制、自定义SSL/TLS认证等高级特性。这种方案特别适合需要处理复杂证书加载、实现特定QoS组合的企业级物联网应用,为智能家居、工业物联网等场景提供更可靠的通信基础。

weixin_30307921的博客 405

Spring Boot与MQTT构建高效物联网监控系统

MQTT作为一种轻量级的发布/订阅消息传输协议,在物联网领域具有显著优势。其最小报文仅2字节,支持异步通信和服务质量分级(QoS),特别适合低带宽、高延迟的网络环境。结合Spring Boot框架的自动配置特性,开发者可以快速构建高可用的物联网监控系统。在实际工业场景中,这种组合能有效降低服务器负载,提升设备通信效率。通过合理配置MQTT的QoS级别和连接参数,系统可以在网络不稳定的情况下保证数据可靠传输。典型应用包括工业设备监控、智能家居和农业物联网等领域,其中Spring Boot的微服务架构与MQTT

weixin_30247781的博客 231

10分钟上手OneBox(万宝盒):从安装到第一次AI对话的快速开始教程

OneBox(万宝盒)是一款免费的 Android AI 智能体 & 工具箱,内置 AI 助手可一句话驱动 90+ 个应用内工具替你干活。这篇快速开始教程带你 10 分钟完成安装、配置 AI 引擎,并和它完成第一次 AI 对话。 [![OneBox万宝盒:一个App集成90+工具与AI助手](https://raw.gitcode.com/gh_mirrors/oneb/OneBox/raw/1

gitblog_00255的博客 373

构建抗压数据处理管道:应对强制系统集成的Spring Boot实践

在分布式系统与微服务架构中,系统集成是连接不同服务与外部组件的关键环节,其核心在于处理异构系统间的数据交换与流程协同。其原理通常涉及协议适配、数据转换与异步通信,以确保信息可靠传递。这一技术的价值在于提升系统整体韧性、保障业务连续性,尤其在面对设计不佳或不可控的外部接口时。应用场景广泛覆盖第三方支付回调、监管数据上报、物联网设备接入及遗留系统对接等。本文聚焦于在类似机场运营的复杂强约束环境中,通过Spring Boot实现一个包含适配器模式、断路器及死信队列的健壮数据处理管道,以优雅处理来自上游的强制数据流

weixin_34342207的博客 331
上一篇: Spring Integration介绍
下一篇: Spring Security3源码分析-电子书下载
Dead_Knight
博客等级 码龄19年 6粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值