You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Integration Outbound Adapter实现CSV/DB数据传FTP的教程咨询

Spring Integration FTP Outbound Adapter 场景实现参考

场景1:接收用户上传CSV文件并发送至FTP

  • 依赖要求:项目需引入spring-boot-starter-integration与spring-integration-ftp依赖,同时搭配spring-boot-starter-web对外提供HTTP接口
  • 实现流程:
    1. 开发POST接口接收MultipartFile类型的CSV文件参数
    2. 将接收到的文件流/临时文件封装为Spring Integration标准Message对象,传入预定义的消息通道
    3. 配置FTP出站适配器绑定上述消息通道,设置FTP服务器连接参数、远程存储路径、文件存在时的处理策略(覆盖/跳过/重命名)
    4. 可配置重试通知处理FTP连接异常、权限不足等异常场景
  • 优化建议:大文件场景开启流式传输,避免本地磁盘生成临时缓存文件

场景2:拉取当日数据库新增记录生成CSV发送至FTP

  • 实现流程:
    1. 开发触发接口,接口被调用后执行数据库查询逻辑,筛选当日新增的业务数据
    2. 借助CSV处理工具将数据列表序列化为CSV格式,可选择生成本地临时文件或直接封装为字节流
    3. 将CSV资源封装为Message对象,携带文件名、生成时间等自定义头信息后发送至FTP出站适配器绑定的消息通道
  • 优化建议:自定义FileNameGenerator实现CSV文件按业务规则命名,比如使用业务标识_年月日_时间戳.csv的格式,避免文件重名冲突

核心配置参考

以下为FTP出站适配器的常用Java配置片段

// FTP会话工厂配置,复用连接提升性能
@Bean
public SessionFactory<FTPFile> ftpSessionFactory() {
    DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
    sessionFactory.setHost("FTP服务器地址");
    sessionFactory.setPort(21);
    sessionFactory.setUsername("登录账号");
    sessionFactory.setPassword("登录密码");
    // 被动模式配置,按需开启
    sessionFactory.setClientMode(FTPClient.PASSIVE_LOCAL_DATA_CONNECTION_MODE);
    return new CachingSessionFactory<>(sessionFactory);
}

// FTP出站适配器配置
@Bean
@ServiceActivator(inputChannel = "ftpMessageChannel")
public MessageHandler ftpOutboundAdapter(SessionFactory<FTPFile> ftpSessionFactory) {
    FtpMessageHandler handler = new FtpMessageHandler(ftpSessionFactory);
    // 设置远程存储目录
    handler.setRemoteDirectoryExpression(new LiteralExpression("/data/csv/"));
    // 设置文件名生成规则
    handler.setFileNameGenerator(message -> 
        message.getHeaders().get("file_name", String.class)
    );
    // 文件已存在时执行覆盖
    handler.setFileExistsMode(FileExistsMode.REPLACE);
    return handler;
}

内容的提问来源于stack exchange,提问作者Good Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:09:03