Spring Boot คืออะไร
Spring Boot เป็น project นึงของ Spring Framework ที่ช่วยทำให้พัฒนา Application ได้รวดเร็วขึ้น หน้าที่หลักๆ คือจัดเตรียมโปรเจคให้เรามี library ที่เกี่ยวข้องอย่างครบครัน และมี embedded application server ติดมาให้ เป็นประโยชน์ในการ test มากๆๆ
ข้อดีของ Spring Boot
- สร้าง Spring applications แบบ stand-alone
- มี Embed Tomcat, Jetty or Undertow (ไม่จำเป็นต้อง deploy WAR files)
- มี POMs ‘starter’ เพื่อทำให้ Maven configuration ได้ง่ายขึ้น (ก็คือเจ้า pom.xml นั่นเอง)
- ช่วย configure Spring แบบอัตโนมัติเมื่อใดก็ตามที่เป็นไปได้
- มี production-ready features เช่น metrics, health checks และ externalized configuration
- ไม่จำเป็นต้องมี XML configuration
Spring Initializr คืออะไร?
Spring Initializr เป็น web service สำหรับใช้เริ่มต้นโปรเจค Spring Boot ที่จะช่วยสร้างโปรเจคอย่างง่ายขึ้นมา โดยจะต้อง download มาเป็น *.zip หรือในบาง editor ก็สามารถสร้างโปรเจคในลักษณะเดียวกันได้เลย(ไม่ต้องผ่านเว็บก็ได้)
Spring Framework กับ Spring Boot ต่างกันยังไง?
Spring Framework คือ Framework ตัวนึงที่เข้ามาใช้ในการบริหารจัดการ Sourcecode ตามหลัก MVC (Model , View , Controller) สำหรับโปรแกรมสาย Java ซึ่งมีคุณสมบัติดีๆ มากๆ อย่างการ dependency injection คือตอนแรกมันจะเบามากๆ พออยากทำไรเพิ่มก็ใส่เครื่องมือเข้าไปใน Dependencies หรือ อย่างการทำ @Autowired annotation คือ การเรียกใช้ Service อื่นๆของ Spring หรือ เรียกใช้ Properties อื่นๆ โดยไม่ต้องสร้าง Class หรือ Object ขึ้นมาใหม่นั่นเอง
ถ้าอธิบายแบบง่ายๆก็คือ Spring Framework จะเป็น App ที่เอาไปฝาก (Tomcat) Server รัน มันไม่สามารถรันได้ด้วยตัวมันเอง ต้องพึ่งพา Server เสมอ ถ้ามีหลายๆ App ส่วนมากมักจะใช้ Server ตัวเดียว ทำให้เวลา Server มีปัญหา App ทั้งหมดก็จบ
ส่วน Spring Boot ก็คือ Spring ที่ผ่านการ Upgrade แล้วโดยเราจะไม่มองมันเป็น App แต่เราจะมองมันเป็น Service เหมือน Service ใน Linux ก็คือ มันสามารถรันได้ด้วยตัวมันเอง หรือก็คือมัน Built in Server มาให้ในตัวแล้ว เอาไปใช้ได้เลย เวลา Server มีปัญหาก็ไม่กระทบต่อ Service ทั้งหมด ทำให้เวลาไปใช้งานจริง Spring Boot จะใช้ง่าย และเหมาะแก่การเอามาใช้ในโปรเจคมากกว่าครับ