ทำ SpringBoot ให้ Auto Reload Java Class

จดไว้กันลืมพอดีได้เขียน Spring Boot บ้างช่วงหลังๆและบางที่ก็รำคาญที่ต้อง Ctrl+C แล้วก็ gradle bootRun ทุกครั้งที่เปลี่ยนของบางอย่างใน project เลยกลับไปหาวิธีการเก่าๆที่เคยทำคือใช้ JRebel และทำให้ Gradle ทำงานแบบ watch change ซึ่งก็ทำได้ตามปกติ แต่!!!!! JRebel มันแพงนะ เลยอยากรู้ว่าปี 2017 แล้วมีใครทำอะไรมาแข่งกับ JRebel บ้างไหม ซึ่งแน่นอนว่ามียกตัวอย่างเช่น DCEVM และก็เหลือบไปเห็น Spring Hot Swapping เลยสนใจเป็นพิเศษเพราะเป็นของที่ใช้งานอยู่แล้ว และเข้าไปก็พบว่า set ง่ายมากแค่เพิ่มคำสั่งลงไปใน build script และกำหนดว่าจะให้ไป reload ของจากตรงไหนเท่านั้นก็เสร็จแล้วครับ

พอ set แบบนี้ได้แล้วเราก็เปิด terminal มาสองอัน

  1. อันแรกสั่ง gradle bootRun
  2. อันที่สองสั่ง gradle build -continuous

เท่านี้เราก็สามารถแก้แล้วเห็น change ได้เลย

https://gitlab.com/roofimon/spring-boot-hot-swapping

Like what you read? Give Roof 43 Panichsombat a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.