Spring vs Spring Boot: ความแตกต่างระหว่าง Spring และ Spring Boot
เผยแพร่แล้ว: 2021-01-13ในฐานะส่วนขยายของ Spring Framework นั้น Spring Boot ถูกใช้อย่างกว้างขวางเพื่อให้การพัฒนาบน Spring เร็วขึ้น มีประสิทธิภาพมากขึ้น และสะดวกยิ่งขึ้น ในบทความนี้ เราจะพิจารณาพารามิเตอร์บางตัวที่ใช้ Spring Boot ซึ่งสามารถลดเวลาและความพยายามในการพัฒนาแอปพลิเคชันได้อย่างมาก
สารบัญ
ฤดูใบไม้ผลิคืออะไร?
เพื่ออธิบายง่ายๆ ว่า Spring เป็นเฟรมเวิร์กแบบบูรณาการที่เป็นที่นิยมซึ่งให้การสนับสนุนโครงสร้างพื้นฐานแบบรวมทุกอย่างเพื่อพัฒนาแอปพลิเคชันที่ใช้ Java แพลตฟอร์มโอเพนซอร์ซมีน้ำหนักเบา เชื่อมต่อแบบหลวม และมาพร้อมกับคุณสมบัติที่สำคัญบางอย่างซึ่งรวมถึง Dependency Injection และ Aspect-Oriented Programming
Dependency Injection มีหน้าที่ในการดึง coupling ออกมา ในขณะที่โปรแกรม Aspect-Oriented จะช่วยในการดำเนินการ cross-cutting ที่สำคัญ
นอกจากนี้ยังมาพร้อมกับโมดูลที่หลากหลายสำหรับการปฏิบัติงานที่แตกต่างกัน บางส่วน ได้แก่ Spring Test, Spring Security, Spring Web, Spring JDBC, Spring AOP, Spring MVC และ Spring ORM
แต่ละโมดูลเหล่านี้ช่วยลดเวลาในการพัฒนาแอปพลิเคชันได้อย่างมาก ตัวอย่างเช่น รหัสต้นแบบ - ก่อนหน้านี้ การพัฒนาบน Java ต้องใช้รหัสต้นแบบจำนวนมากสำหรับงานง่ายๆ ในการแทรกบันทึกเฉพาะลงในแหล่งข้อมูล อย่างไรก็ตาม ตอนนี้เมื่อเราใช้ JDBCTemplate งานเดียวกันสามารถทำได้ด้วยโค้ดบางบรรทัดและการกำหนดค่าเล็กน้อยบางอย่างเท่านั้น
รองเท้าบูทสปริง
Spring Boot สร้างขึ้นจาก Spring เป็นโมดูลที่อนุญาตให้มีการกำจัดการกำหนดค่าสำเร็จรูปที่มีความยาวซึ่งมีความสำคัญอย่างอื่นในการตั้งค่าแอปพลิเคชัน

Spring Boot ทำงานโดยคำนึงถึงมุมมองของกรอบงาน Spring เพื่อให้เกิดการพัฒนาแอปพลิเคชันที่รวดเร็วและมีประสิทธิภาพ การกำหนดค่าอัตโนมัติเป็นคุณสมบัติที่มีประโยชน์ที่สุด
มันทำการวัดอย่างเข้มงวดและตรวจสุขภาพ และดูแลการกำหนดค่าภายนอก มีการกำหนดค่าอัตโนมัติที่เปิดใช้งานสำหรับการทำงานที่ราบรื่นของ Spring นอกจากนี้ยังมีเซิร์ฟเวอร์ที่ฝังไว้เพื่อลดความยุ่งยากในการปรับใช้แอปพลิเคชัน
อ่านเพิ่มเติม: 7 สุดยอดโปรเจ็กต์ Spring Boot และหัวข้อสำหรับผู้เริ่มต้น
ความแตกต่างระหว่าง Spring และ Spring Boot
ในส่วนนี้ เราจะพิจารณาความแตกต่างที่สำคัญระหว่างกรอบงาน Spring และ Spring Boot อย่างใกล้ชิด
1. กรอบงาน
Spring เป็นโอเพ่นซอร์สและมีน้ำหนักเบาซึ่งเหมาะสำหรับการสร้างแอปพลิเคชันระดับองค์กร ในทางกลับกัน Spring Boot เป็นส่วนขยายของเฟรมเวิร์กสปริง ซึ่งเหมาะสำหรับการพัฒนา REST API แอปพลิเคชั่นใน Spring นั้นเชื่อมต่อกันอย่างหลวม ๆ ในขณะที่ Spring Boot' เป็นแบบสแตนด์อโลน
2. การตรวจสอบสิทธิ์พื้นฐานของ HTTP
มาดูกันว่า Spring และ Spring Boot เปิดใช้งานการกำหนดค่าความปลอดภัยได้อย่างไร เช่น การตรวจสอบสิทธิ์ HTTP Basic เริ่มต้น สิ่งนี้บ่งชี้ว่าจำเป็นต้องเปิดใช้งานการพึ่งพาและการกำหนดค่าหลายอย่างเพื่อเปิดใช้งานการรักษาความปลอดภัย
ในกรณีของ Spring จำเป็นต้องมีทั้งการขึ้นต่อกันของ spring-security-web และ spring-security-config มาตรฐานเพื่อเปิดใช้งานการพิสูจน์ตัวตน HTTP Basic เริ่มต้นในแอปพลิเคชัน
ขั้นตอนต่อไปคือการเปิดใช้งานคำอธิบายประกอบ @EnableWebSecurity โดยการเพิ่มคลาสที่มี WebSecurityConfigurerAdapter:
ต้องใช้การตรวจสอบสิทธิ์ในหน่วยความจำเพื่อเปิดใช้งานการรักษาความปลอดภัย
เช่นเดียวกับ Spring การขึ้นต่อกันเหล่านี้จะต้องรวมอยู่ด้วยแม้ในกรณีของ Spring Boot อย่างไรก็ตาม สิ่งนี้สามารถทำได้โดยกำหนดเฉพาะการพึ่งพาความปลอดภัยสปริงบูตสตาร์ทเตอร์ซึ่งจะดูแลส่วนที่เหลือโดยอัตโนมัติ
3. การพึ่งพาขั้นต่ำ
Spring ต้องการการอ้างอิงจำนวนหนึ่งในการสร้างเว็บแอป เหล่านี้ คือ :
<การพึ่งพา>
<groupId>org.springframework</groupId>
<artifactId>สปริงเว็บ</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<การพึ่งพา>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
ในทางกลับกัน Spring Boot สามารถทำให้แอปพลิเคชันทำงานด้วยการพึ่งพาเพียงครั้งเดียว:
<การพึ่งพา>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
มีการขึ้นต่อกันอีกหลายอย่างที่จำเป็นระหว่างเวลาสร้างที่เพิ่มไปยังไฟล์เก็บถาวรขั้นสุดท้ายตามค่าเริ่มต้น แม้ในขณะที่ทดสอบไลบรารี่ Spring ก็ยังเพิ่มไลบรารีต่อไปนี้:
- ม็อกคิโต
- การทดสอบสปริง
- แฮมเครสต์และ
- จูนิต
Spring Boot มีโครงการเริ่มต้นจำนวนมากสำหรับโมดูล Spring ต่างๆ มีการติดตั้งไลบรารีที่จำเป็นสำหรับแต่ละโมดูล

ดังนั้น ไม่เหมือนกับ Spring เพราะ Spring boot ต้องการการพึ่งพา starter เพียงรายการเดียวในไลบรารีการทดสอบ
4. การกำหนดค่าสปริง
ในส่วนนี้ เราจะเน้นที่การกำหนดค่าทั้ง Spring และ Spring Boot ที่จำเป็นสำหรับการสร้างเว็บแอปพลิเคชัน (JSP)
ในกรณีของ Spring เราใช้ไฟล์ web.xml หรือคลาส Initializer เพื่อกำหนดเซิร์ฟเล็ตโปรแกรมเลือกจ่ายงาน และการกำหนดค่าที่สำคัญอื่นๆ
Spring ยังต้องการให้คำอธิบายประกอบ @EnableWebMvc สามารถเข้าถึงได้ในคลาส @Configuration และเพื่อประกาศตัวแก้ไขมุมมองสำหรับการแก้ไขมุมมองที่ตัวควบคุมจะกลับมา
ในกรณีของ Spring Boot โค้ดทั้งหมดสามารถถูกแทนที่ด้วยคุณสมบัติบางอย่างหลังจากเพิ่มเว็บสตาร์ทเตอร์ การกำหนดค่าที่จำเป็นจะถูกเพิ่มโดยอัตโนมัติเมื่อรวม Boot web starter กระบวนการนี้เรียกว่าการกำหนดค่าอัตโนมัติ:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
พูดง่ายๆ ก็คือ Spring Boot ใช้มุมมองความคิดเห็นของการพึ่งพา การกำหนดค่า และถั่วที่เกี่ยวข้อง และเพิ่มคุณสมบัติเพื่อเปิดใช้งานสิ่งเหล่านี้โดยอัตโนมัติ
อย่างไรก็ตาม ในกรณีที่คุณต้องการดำเนินการต่อด้วยการกำหนดค่าแบบกำหนดเอง คุณสามารถแทนที่ Spring Boot เพื่อไม่ให้รบกวน
5. การบูตสแตรป
Servlet คือสิ่งที่แยกความแตกต่างระหว่างแอพพลิเคชั่น bootstrapping ใน Spring และ Spring Boot
ใช้ web.xml หรือ SpringServletContainerInitializer เป็นจุดเริ่มต้นสำหรับ Spring ในขณะที่ Spring Boot สามารถบูตแอปพลิเคชันด้วย Servlet 3 ได้
6. การปรับใช้
ทั้ง Spring และ Spring Boot มีความคล้ายคลึงกันเพราะสนับสนุนเทคโนโลยีเช่นการรองรับ Maven และ Gradle ที่ใช้กันมากที่สุดในบรรจุภัณฑ์ อย่างไรก็ตาม กระบวนการปรับใช้จะแตกต่างกันในทั้งสองเฟรมเวิร์ก

ตัวอย่างเช่น ปลั๊กอิน Spring Boot Maven ให้การสนับสนุน Spring Boot ใน Maven นอกจากนี้ยังอนุญาตให้บรรจุ jar หรือ war archives ที่ปฏิบัติการได้และเรียกใช้แอปพลิเคชัน "in-place"
เมื่อพูดถึงการปรับใช้ Spring Boot มีข้อดีเหนือ Spring หลายประการ:
- มีการรองรับคอนเทนเนอร์แบบฝังตัว
- การใช้คำสั่ง java -jar สามารถรัน jars ได้อย่างอิสระ
- สามารถหลีกเลี่ยงความขัดแย้งใน jar ได้โดยลบการพึ่งพาที่นำไปสู่
- คุณสามารถกำหนดโปรไฟล์ที่ใช้งาน
- ปลั๊กอิน Spring Boot Maven รองรับ jar หรือ war archives ที่เรียกใช้งานได้ และอนุญาตให้คุณเรียกใช้แอปพลิเคชัน "in-place"
- การทดสอบการรวมที่ง่ายขึ้นผ่านการสร้างพอร์ตแบบสุ่ม
ข้อดีของ Spring Boot เหนือ Spring
- มีการกำหนดค่าเริ่มต้นที่ช่วยให้การบูตแอปพลิเคชันเร็วขึ้น
- Spring Boot ใช้มุมมองที่มีความเห็นเกี่ยวกับการพึ่งพา 'เริ่มต้น' ของ Spring สำหรับการสร้างและการกำหนดค่าแอพที่ง่ายและมีประสิทธิภาพ
- ไม่มีปัญหาใด ๆ เมื่อพูดถึงเวอร์ชันที่ไม่ตรงกัน เนื่องจากมีโปรเจ็กต์เริ่มต้นมากมายที่อนุญาตให้รวมระบบได้ง่าย สิ่งเหล่านี้รวมถึง spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-test, spring-boot-starter-security, spring-boot-starter-thymeleaf
- เซิร์ฟเวอร์แบบฝัง เช่น tomcat หรือ jetty ทำให้การดำเนินการง่ายขึ้นเมื่อเทียบกับ Spring ที่ต้องการเซิร์ฟเวอร์ที่ชัดเจนเพื่อเรียกใช้แอปพลิเคชัน
- คุณหลีกเลี่ยงรหัสสำเร็จรูปซึ่งช่วยลดเวลาและเพิ่มผลผลิต แอปพลิเคชัน Spring ต้องการรหัสมากเกินไป
- Spring Boot ไม่ต้องการตัวอธิบายการปรับใช้เช่น Spring
เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
Spring Boot มีคุณสมบัติทั้งหมดของ Spring แบบเดิม และยังทำให้การพัฒนาแอปพลิเคชันง่ายขึ้นมาก เนื่องจากคุณสมบัติ Spring Boot ทั้งหมดได้รับการกำหนดค่าอัตโนมัติ คุณจึงสามารถเปิดแอปพลิเคชันและทำงานในเวลาที่น้อยกว่ามากเมื่อเทียบกับ Spring
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Spring Boot การพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9 + โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ
Spring Boot ใน Java คืออะไร?
Spring Boot เป็นเฟรมเวิร์กของเว็บแอปพลิเคชัน ซึ่งคล้ายกับ Spring MVC ที่ทำให้สร้างเว็บแอปได้ง่ายขึ้น ได้รับการออกแบบมาเพื่อใช้ประโยชน์จากคุณลักษณะใหม่ของแพลตฟอร์ม Java เช่น Java 8 Spring Boot มีความคิดเห็นอย่างมาก ซึ่งหมายความว่านักพัฒนาซอฟต์แวร์ไม่ต้องเสียเวลาคิดเกี่ยวกับโค้ดทั่วไปสำหรับการทำงานต่างๆ ให้เสร็จสิ้น Spring Boot สร้างขึ้นบน Spring MVC และ Spring Data แต่ต่างจากพวกมันที่ไม่ต้องการไฟล์การกำหนดค่า XML มันถูกพิมพ์อย่างเข้มงวดและกำหนดค่าตัวเองโดยอัตโนมัติตามสิ่งที่อยู่ใน classpath นักพัฒนาเพียงแค่ต้องเขียนคลาสด้วยคำอธิบายประกอบ @SpringBootComponent และ Spring Boot จะดูแลการลงทะเบียนเป็นส่วนประกอบและสร้างบริบทของ Spring และกำหนดค่าเอง นี่เป็นข้อได้เปรียบที่สำคัญของการใช้ Spring Boot เนื่องจากช่วยลดเวลาที่ต้องใช้ในการเริ่มต้นและสร้างแอปพลิเคชันตัวอย่างที่ทำงานได้
การพึ่งพาการฉีดในสปริงคืออะไร?
อะไรคือความแตกต่างระหว่าง Spring และ Spring Boot?
Spring เป็นเฟรมเวิร์กแอปพลิเคชัน Java Spring Boot เป็นเวอร์ชันที่มีน้ำหนักเบาของ Spring กล่าวอีกนัยหนึ่ง Spring Boot เป็นชุดย่อยของ Spring ซึ่งสร้างขึ้นเพื่อให้สะดวกยิ่งขึ้นในการสร้างไมโครเซอร์วิสที่ใช้ Spring Spring Boot เป็นเฟรมเวิร์กแบบโอเพ่นซอร์สที่รวดเร็วและฟรีเพื่อสร้างไมโครเซอร์วิส มันใช้โมเดลการเขียนโปรแกรม Spring แบบเดียวกัน แต่ช่วยให้คุณเริ่มต้นได้เร็วขึ้นโดยมีการพึ่งพาน้อยลง Spring Boot ให้การสนับสนุนทั้งหมดที่คุณต้องการเพื่อสร้างไมโครเซอร์วิสแบบสแตนด์อโลน (Spring Boot Starter) และเป็นพื้นฐานที่ดีสำหรับเว็บแอป Java ฝั่งเซิร์ฟเวอร์ของคุณ