基本框架
-
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