Apache camel applications using Spring Boot ตอนที่ 1

Chiwa Kantawong (Pea)
2 min readJun 13, 2019

--

สำหรับซีรีย์นี้เราจะไม่พูดถึงว่า 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 ได้แล้วครับ เอาไว้คอยติดตามตอนที่สอง ต่อไปนะครับ โดยการต่อยอดจากตอนนี้นะครับ แล้วพบกันครับ

--

--

Chiwa Kantawong (Pea)
Chiwa Kantawong (Pea)

Written by Chiwa Kantawong (Pea)

Software Development Expert at Central Tech

No responses yet