Apache Camel,Spring Boot 實現文件復制,轉移 (轉)


基本框架

  • Apache Camel

  • Spring Boot

  • Maven

開發過程

1.新建一個POM(quickstart)項目,在POM文件中添加Camel和Spring Boot的依賴

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency> 
 <groupId>org.apache.camel</groupId> 
 <artifactId>camel-spring-boot-starter</artifactId> 
 <version>2.18.1</version>
</dependency>
</dependencies>

 

2.新建Application.java 啟動類

@SpringBootApplication
public class Application{
    public static void main(String[] args) {
          final ApplicationContext context = new SpringApplication(Application.class).run(args);
          final CamelSpringBootApplicationController controller = context.getBean(CamelSpringBootApplicationController.class);
          controller.run();
    }
}

 

3.新建RouteBuilder.java 消息路由

@Component
public class RouteBuilder extends SpringRouteBuilder {

    @Override
    public void configure() throws Exception {
         from("file:C:/Temp/inbox").to("file:C:/Temp/outbox");
    }
}

 

4.啟動Application的main函數,C:/Temp/inbox下的文件將會被自動拷貝到C:/Temp/outbox,camel會一直監控inbox文件夾,一旦有新文件出現,就會被立即拷貝到outbox。
5.更多高級應用的參數配置

  • 處理完的文件移動到C:/Temp/inbox/.done 目錄中,進行備份,不指定的話,會默認備份至C:/Temp/inbox/.camel
    from("file:C:/Temp/inbox?move=.done").to("file:C:/Temp/outbox");
  • 刪除處理完成的文件
    from("file:C:/Temp/inbox?delete=true").to("file:C:/Temp/outbox");
  • 處理中的文件單獨放在一個文件夾,文件第一步從inbox移動到inprogress,處理完成之后,再移動到.done
    from("file:C:/Temp/inbox?preMove=inprogress&move=.done").to("file:C:/Temp/outbox");
  • 按日期備份處理完的文件
    from("file:C:/Temp/inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("file:C:/Temp/outbox");
  • 記錄處理失敗的文件
    moveFailed=/error/${file:name.noext}-${date:now:yyyyMMddHHmmssSSS}.${file:ext}

 

 轉載至:https://www.jianshu.com/p/3e505db9cd63


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM