สวัสดีครับวันนี้จะพามาแนะนำให้รู้จักกับ Back-end Framework / Library ที่รู้ไว้ ชีวิตสบายขึ้นแน่! สำหรับใครที่รู้จักสายนี้ Java Backend Developer แน่นอนว่าก็ต้องรู้จัก Spring Boot !!! แล้วมันคืออะไร ทำไมสายงาน Back-end จะต้องรู้ไปดูกันเลย !!!!!!
โดย คุณเสรี มากเอียด
Business Unit Manager, MFEC
Java Backend Developer ต้องรู้จัก Spring Boot !!!
Web Framework เจ้าดัง ดั้งเดิม สำหรับ Developer สายจาวาไม่ว่าจะ Web หรือ API ทุกคนควรทำความรู้จักกับ Spring Boot ครับ ยังไงต้องได้เจอแน่ๆ หากมาสาย Java Developer
ถือว่าเป็น Framework ที่เด่นสุดตัวหนึ่งของ Spring Framework ก็ว่าได้ เพราะก่อนหน้านี้ จาวาเดฟทุกคนอาจเคยใช้แต่ Spring MVC Framework
ซึ่งหมายความว่าถ้าจะ Implement Project อะไรให้ได้มาซึ่งรูปนี้ ต้อง Install และ Configuration กันเยอะมาก โดยเฉพาะ Server ที่จะใช้ในการ Serv ให้ตัว Application เรารันขึ้นมาเป็น Web Application หรือจะทำ API เองก็ตาม ทั้งยุ่งยากในการเคลื่อนย้ายหรือไปติดตั้ง รวมถึงขั้นตอนในการ Dev ที่เดฟแต่ละคนต้องติดตั้งเองที่เครื่อง Local เองก็ตาม… ในขณะที่ภาษาใหม่ๆ ง่ายมากๆๆๆ ที่จะทำ API สักตัวเพื่อทำตัวเองเป็น Server และ Serv เป็น Services ให้ชาวบ้านเรียกใช้งานกัน
การมาของ Spring Boot เพื่อกู้หน้าในส่วนนั้นครับบบ(อันที่จริงก็ท่าเยอะกว่าชาวบ้านนั้นแหละ.. แต่ก็ยังดีแหละ ดีกว่าท่าเดิมๆ 555++)
Spring Boot มาพร้อม Features เด่นๆ ดังนี้
1. สามารถสร้าง Application ได้เหมือน stand-alone ก็คือไม่ต้องยุ่งยาก Pack Project เป็น EAR หรือ WAR ไฟล์ เหมือนเมื่อก่อนที่ค่อยข้างยุ่งยากมาก แต่สร้างเป็น Jar ไฟล์และรันได้เลยเหมือน Java stand-alone app สะดวกและลดความซับซ้อนจากการ Deploy Application ได้เยอะมาก
ได้ฟิวเหมือนเขียน Application Java ธรรมดาแต่บริการเป็น Web/API Application ได้ พร้อมสั่งรันเสมือนสั่งรันจาก Main Class แบบ Java ธรรมดา ได้เลยจ้า…
2. การที่เราไม่ต้อง Pack เป็น EAR หรือ WAR ไฟล์ และต้องหา App Server เพื่อรัน Application อีกที นั่นเป็นเพราะ Spring Boot ได้มี Embed Web Server มาให้ในตัว นั่นก็คือมี Tomcat ซึ่งเป็น Application Server ตัวหนึ่ง ซึ่งส่งผลให้เราสั่งรัน Application ได้เลยโดยไม่ต้องไปวิ่งหา Server ให้ยุ่งยาก ง่ายต่อการ Deploy และตอบโจทย์ในยุคที่ทุกอย่างอยู่บน Cloud ได้อย่างสะดวกมากขึ้น
3. Spring Boot เองได้ Provide เครื่องมือที่ใช้สร้าง Project เบื้องต้นได้อย่างง่ายดายเสมือนว่าเลือก Shop สิ่งที่ต้องใช้ (Library) ได้อย่างสะดวกและนำไปพัฒนาต่อได้สะดวกและรวดเร็ว ภายใต้ Spring Initializr (https://start.spring.io/)
ซึ่งส่วน Project เองก็จะมาพร้อมในรูปแบบของ Maven Project โดย Maven เองจะเป็นตัวจัดการเรื่องของ Dependency หรือ Library ต่างๆ ที่ต้องใช้ใน Project รวมถึงการ Build Code เพื่อใช้ในการ Build Code เพื่อให้รันได้อีกด้วย (แต่นอกจาก Maven เอง ก็จะมีอีกตัวที่ใช้ได้เหมือนกันคือ Gradle) อีกทั้ง Spring Boot เองก็ไม่ได้บังคับว่าต้อง Implement ด้วย Java เท่านั้น แต่ยังรองรับทั้ง Kotlin และ Groovy อีกด้วย
4. จากตัวจัดการ Dependency หรือ Library เอง ทำให้ Spring Boot ง่ายต่อการเลือกใช้ หรือถอดออกหากไม่ต้องการ Library ต่างๆ ผ่าน pom.xml ซึ่งเป็นตัวไฟล์ Config ที่ใช้จัดการ Library ที่ต้องใช้ใน Project เรานั่นเอง
และโครงสร้างของ Project ที่มีทั้งที่เป็น Source Code หลักและสามารถเขียน Testing ได้ด้วย
5. จากการที่เราสามารถบริหารจัดการ Library ได้อย่างง่ายดายนี่เองทำให้เราสามารถนำ Library ที่จำเป็นแต่ละ Feature ที่เราต้องการใช้ในการทำ Web Application ได้อย่างสะดวก ทำให้รวดเร็วต่อการพัฒนา ต่อยอดได้ง่าย ทั้งที่เป็น Library standard ที่ Spring Boot มีให้และ 3rd Party ต่างๆ อีกมากมายที่พร้อมใช้สำหรับ Production ได้เลย
6. ตัว Spring Boot มาพร้อมการ Config ด้วยการ Coding ทั้งหมดได้เลย โดยไม่ต้องพึ่ง XML Config ให้ยุ่งยากเหมือนเมื่อก่อนอีกต่อไป ด้วยการใช้ Annotaion ต่างๆ ที่ทาง Framework ได้จัดเตรียมไว้ให้มากมาย
ซึ่งการมาของ Spring Boot ก็จะตอบโจทย์กับการทำพวก API หรือ Services ที่เป็น RESTful Web Services เป็นอย่างมากสำหรับสาย Java
รวมถึงในเรื่องของ Microservices เอง Spring Boot ก็เป็นรากฐานสำคัญมากในการต่อยอดไปเป็น Microservices ในสายของ Java ต่อไป รวมถึงพวก API Gateway ที่จำเป็นสำหรับการทำ Microservices ได้ด้วย…