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

如何在不依赖Spring的情况下使用Apache Camel File-Watch功能

非Spring环境使用Apache Camel File-Watch组件实现方案

Apache Camel核心框架本身不强制绑定Spring,File-Watch组件同样支持在纯Java SE环境下独立运行,不需要引入任何Spring相关依赖。

依赖配置

如果使用Maven管理项目,只需要引入Camel核心依赖和File-Watch组件依赖即可,不需要额外引入camel-spring相关包:

<dependencies>
    <!-- Camel核心包 -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>4.4.0</version> <!-- 可替换为实际使用的Camel版本 -->
    </dependency>
    <!-- File-Watch组件包 -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-file-watch</artifactId>
        <version>4.4.0</version>
    </dependency>
    <!-- 可选:日志实现,用于运行时输出日志 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.12</version>
    </dependency>
</dependencies>

最小实现示例

纯Java环境下直接通过DefaultCamelContext启动路由即可,不需要Spring容器托管:

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class FileWatchStandaloneDemo {
    public static void main(String[] args) throws Exception {
        // 初始化Camel上下文,无Spring依赖
        try (CamelContext context = new DefaultCamelContext()) {
            context.addRoutes(new RouteBuilder() {
                @Override
                public void configure() throws Exception {
                    // 监听指定目录的文件创建、修改、删除事件
                    from("file-watch:/your/watch/path?" +
                            "events=CREATE,MODIFY,DELETE" +
                            "&recursive=true" + // 递归监听子目录
                            "&antInclude=*.txt,*.log") // 仅监听txt、log后缀文件
                        .log("捕获文件事件: ${header.CamelFileEventType},文件路径: ${header.CamelFileAbsolutePath}");
                }
            });
            // 启动Camel上下文
            context.start();
            // 阻塞主线程保持服务运行,可按需调整停止逻辑
            Thread.currentThread().join();
        }
    }
}

核心配置说明

  • 监听事件类型通过events参数指定,支持CREATE/MODIFY/DELETE三种,多个事件用逗号分隔
  • recursive参数控制是否递归监听子目录,默认值为false
  • 可通过antInclude/antExclude参数过滤需要监听的文件类型,支持Ant风格路径匹配
  • 所有File-Watch组件的配置参数和Spring环境下完全一致,不存在功能差异

运行注意事项

  • Windows、macOS、Linux系统下组件会自动适配底层文件系统事件通知机制,不需要额外配置
  • 监听目录必须提前存在,否则启动时会抛出路径不存在异常,可提前手动创建或在路由启动前通过代码创建目标目录
  • 生产环境使用时建议自定义异常处理逻辑,避免文件事件消费异常导致路由中断

内容的提问来源于stack exchange,提问作者Jason Mootoo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:18:33