Apache camel applications using Spring Boot ตอนที่ 1
สำหรับซีรีย์นี้เราจะไม่พูดถึงว่า Camel คืออะไร Spring Boot คืออะไรนะครับ หากยังไม่รุ้จักก็ให้กลับไปอ่านบทความก่อนหน้านี้ก่อนนะครับ สิ่งที่ต้องการ
Java 8, Maven, Idea IntelliJ
เริ่มต้นสร้างโปรเจคส์ ด้วย https://start.spring.io/
project ของเราจะเป็น maven project นะครับ ให้ add dependency Apache Camel เข้าไป แล้วกด Generate the project แล้วก็เปิด project ขึ้นมาครับ
package com.zengcode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootCamelApplication {
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(SpringBootCamelApplication.class, args);
int counter = 0;
while (true) {
Thread.sleep(Long.MAX_VALUE);
if (counter++ > Long.MAX_VALUE) {
break;
}
}
}
}
เนื่องจากตัวอย่างนี้ไม่ได้เป็น Web Application ดังนั้นเมื่อรันแล้ว Application ก็จะปิดตัวไปเองเราก็เพิ่มเติมด้วยโค้ดด้านบนนะครับ
เริ่มต้นตรวจสอบดูว่า Application ของเราสามารถรัน Camel Context ได้หรืิอยัง ก็โดยการเพิ่ม CamelRouter.java ดังตัวอย่างนี้ครับ
package com.zengcode.camel;
import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class CamelRouter extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer://testTimer?period=30s")
.log(LoggingLevel.INFO, "Timer trigger " + new Date());
}
}
เราทดสอบโดยใช้ Timer Component ของ Camel เข้าไปดูรายละเอียดของ Component นี้ได้ที่ https://camel.apache.org/timer.html
จากตัวอย่าง timer จะทำงานทุก ๆ 30 วินาที จะพิมพ์ Log
เมือรันแล้วจะได้ผลลัพธ์ดังภาพครับ
ถ้าหาไม่มีอะไรผิดพลาดก็จะได้ผลลัพธ์ เหมือนภาพด้านบน เป็นอันว่าเราได้สร้าง Camel Application โดยการใช้ Spring Boot ได้แล้วครับ เอาไว้คอยติดตามตอนที่สอง ต่อไปนะครับ โดยการต่อยอดจากตอนนี้นะครับ แล้วพบกันครับ