Spring Framework อธิบายใน 5 นาทีหรือน้อยกว่า

Spring Framework เป็นเฟรมเวิร์กการพัฒนาแอปพลิเคชัน Java แบบโอเพ่นซอร์สที่ทรงพลังซึ่งทำให้ง่ายต่อการสร้างแอปพลิเคชันที่แข็งแกร่งและมีประสิทธิภาพสูง

โอเพ่นซอร์สหมายถึงบางสิ่งที่ผู้คนสามารถเข้าถึง ปรับเปลี่ยน และแบ่งปันได้อย่างอิสระ เนื่องจากซอร์สโค้ดมีให้ใช้อย่างเสรี

กรอบงานแอปพลิเคชันโอเพ่นซอร์สเป็นแม่แบบสำหรับการพัฒนาซอฟต์แวร์ที่สร้างขึ้นโดยกลุ่มนักพัฒนาซอฟต์แวร์ มีเทมเพลตหลายประเภทที่ใช้สำหรับวัตถุประสงค์ที่แตกต่างกัน เช่น การสร้างส่วนติดต่อผู้ใช้ เว็บไซต์ และแอปพลิเคชันซอฟต์แวร์พื้นฐาน

หากคุณยังใหม่ต่อการพัฒนาแอปพลิเคชัน การเริ่มต้นใช้งาน Spring Framework อาจเป็นการเริ่มต้นที่ดีสำหรับคุณ ในบทความนี้ คุณจะได้เรียนรู้ว่ามันคืออะไรและใช้งานอย่างไร

สารบัญ

Spring Framework คืออะไร?

Spring Framework เป็นเฟรมเวิร์กโอเพ่นซอร์สที่นักพัฒนาใช้เพื่อสร้างแอปพลิเคชัน Java สำหรับองค์กร เฟรมเวิร์กนี้สร้างโดย Rod Johnson และเปิดตัวในปี 2546 ภายใต้ลิขสิทธิ์ Apache 2.0

โปรแกรมเมอร์บางคนมักทุบตี Java และอ้างว่าการสร้างแอปพลิเคชันพื้นฐานเป็นเรื่องยุ่งยาก Spring Framework มีจุดมุ่งหมายเพื่อลดความซับซ้อนของกระบวนการที่ยุ่งยากและซับซ้อนในการพัฒนาแอปพลิเคชัน Java ขององค์กร

ฤดูใบไม้ผลิกว้าง ดังนั้น ขอแนะนำให้คุณทำความเข้าใจก่อนว่า Spring framework คืออะไร ก่อนที่จะเริ่มใช้โปรเจกต์ Spring-based อื่นๆ เช่น Spring Boot, Spring GraphQL และ Spring Cloud

ทำไมต้องใช้ Spring Framework?

  • ยืดหยุ่นได้. เฟรมเวิร์กนี้นำเสนอเทคโนโลยีต่างๆ เช่น การเขียนโปรแกรมเชิง Aspect (AOP), การพึ่งพาอาศัยกัน (DI) และ Plain Old Java Object (POJO) คุณจึงสามารถใช้ Spring เพื่อบรรลุเป้าหมายต่างๆ ได้
  • ฤดูใบไม้ผลิเป็นไปอย่างรวดเร็ว แม้จะมีเทคโนโลยีเหล่านี้ทั้งหมด แต่ Spring Framework ก็ยังมีน้ำหนักเบา จึงเหมาะอย่างยิ่งสำหรับการสร้างเว็บแอปพลิเคชันระดับองค์กรที่ปรับขนาดได้และแข็งแกร่ง
  • ชุมชนที่ยอดเยี่ยม Spring มีชุมชนที่หลากหลาย และคุณวางใจได้ว่าจะช่วยแก้ปัญหาต่างๆ ในเวลาที่คุณต้องการ
  • ปลอดภัย. Spring ขึ้นชื่อในเรื่องมาตรการรักษาความปลอดภัย และช่องโหว่ต่างๆ จะได้รับการแก้ไขผ่านการแพตช์บ่อยครั้ง การพึ่งพาบุคคลที่สามจะได้รับการตรวจสอบอยู่เสมอเพื่อให้แน่ใจว่าช่องโหว่ของพวกเขาจะไม่รบกวนกระบวนการหลัก
  • มีประสิทธิผล. Spring Framework ปรับปรุงประสบการณ์ในการพัฒนาแอปพลิเคชันระดับองค์กร Java
  ยังคงใช้ตัวจัดการรหัสผ่านที่ติดไวรัสฟรีสำหรับธุรกิจของคุณอยู่ใช่หรือไม่

คุณสมบัติของสปริง

รองรับการเขียนโปรแกรมเชิงมุมมอง

การเขียนโปรแกรมเชิงมุมมองทำให้มีความเป็นโมดูลมากขึ้นสำหรับปัญหาการตัดขวาง AOP ยังชมเชยการเขียนโปรแกรมเชิงวัตถุ

หน่วยหลักของโมดูลาร์ใน AOP คือข้อกังวลแบบตัดขวาง (Aspect) นักพัฒนาสามารถสร้างบริการระดับองค์กรที่เปิดเผยและลักษณะที่กำหนดเองได้

การผกผันของคอนเทนเนอร์ควบคุม (IoC)

คอนเทนเนอร์ IoC นำเสนอวิธีการจัดการและกำหนดค่าออบเจกต์ Java ที่คล่องตัว วงจรชีวิตของออบเจกต์ Java ที่กำหนดได้รับการจัดการโดยคอนเทนเนอร์นี้ ซึ่งเพิ่มความสามารถในการกำหนดค่าซ้ำของแอปพลิเคชันที่ใช้ Spring ได้อย่างมาก

การผกผันของการควบคุมใช้การค้นหาการพึ่งพาหรือรูปแบบการฉีดการพึ่งพาเพื่อเสนอรันไทม์อ้างอิงวัตถุ คอนเทนเนอร์ IoC มาพร้อมกับรหัสแอสเซมเบลอร์ที่จำเป็นสำหรับการจัดการการกำหนดค่า

กรอบการเข้าถึงข้อมูล

กระบวนการสื่อสารข้อมูลง่ายขึ้นเนื่องจาก Spring รองรับโดยตรงสำหรับ Hibernate, JDBC และ Java Persistence API (JPA) ซึ่งเป็นเฟรมเวิร์กการเข้าถึงข้อมูลที่ได้รับความนิยมมากที่สุดใน Java คุณยังสามารถใช้เฟรมเวิร์กนี้เพื่อเสนอฟีเจอร์ต่างๆ เช่น การรวมทรัพยากร การจัดการข้อยกเว้น และการจัดการทรัพยากรสำหรับเฟรมเวิร์กการเข้าถึงข้อมูลที่สนับสนุนทั้งหมด

กรอบงาน Spring MVC

นักพัฒนาสามารถใช้เฟรมเวิร์กตามคำร้องขอนี้เพื่อสร้างการใช้งาน MVC แบบกำหนดเองที่เหมาะกับความต้องการของพวกเขา

คลาส DispatcherServlet มีหน้าที่จัดการคำขอของผู้ใช้แล้วส่งต่อไปยังคอนโทรลเลอร์ที่เหมาะสม ซึ่งอยู่ที่แกนหลักของ Spring MVC ผู้ควบคุมจึงสามารถประมวลผลคำขอ สร้างแบบจำลอง และเสนอข้อมูลให้กับผู้ใช้ปลายทางผ่านมุมมองที่ระบุ

มีกรอบการทดสอบหลายแบบ

คุณสามารถทดสอบแอปพลิเคชันที่ใช้ Spring ของคุณขณะที่คุณพัฒนาผ่าน Mock object, TestContext framework หรือ Spring MVC Test

รองรับภาษา

Spring framework รองรับ Groovy และ Kotlin

สถาปัตยกรรมฤดูใบไม้ผลิ

Spring Framework มาพร้อมกับโมดูลประมาณ 20 โมดูล ข้อดีของเฟรมเวิร์กนี้คือคุณสามารถเลือกโมดูลที่เหมาะกับกรณีการใช้งานของคุณได้ โมดูลเหล่านี้จัดกลุ่มเป็น Core Container, AOP (Aspect Oriented Programming), Data Access/Integration, Web, Instrumentation และ Test

เครดิตรูปภาพ: Spring.io

#1. คอนเทนเนอร์หลัก

Core Container ของ Spring Framework ประกอบด้วยโมเดล Core, Beans, Context และ Expression Language โมเดลภาษาเหล่านี้มีประโยชน์ในรูปแบบต่างๆ ดังต่อไปนี้

  • โมดูลหลักเป็นส่วนพื้นฐานของเฟรมเวิร์ก คุณจะพบคุณสมบัติ IoC และ Dependency Injection ที่ Core
  • โมดูล Bean เป็นที่รู้จักจาก BeanFactory ซึ่งเป็นการนำรูปแบบโรงงานไปใช้อย่างซับซ้อน
  • โมดูลบริบทสร้างขึ้นบนโมดูลคอร์และบีน โมดูลนี้สืบทอดคุณสมบัติมาจากโมดูล Bean แต่เพิ่มการรองรับสำหรับความเป็นสากล
  • โมดูล Expression Language นำเสนอภาษาแสดงออกที่มีประสิทธิภาพสำหรับการจัดการและการสอบถามกราฟอ็อบเจกต์ในขณะรันไทม์

#2. การเข้าถึงข้อมูล/บูรณาการ

โมดูล JDBC, ORM, OXM, JMS และธุรกรรมประกอบกันเป็นเลเยอร์การเข้าถึงข้อมูล/การรวมระบบ โมดูลเหล่านี้ดำเนินการดังต่อไปนี้

  • โมดูล JDBC มีเลเยอร์ที่เป็นนามธรรมของ JBDC ที่ช่วยขจัดความจำเป็นในการเขียนโค้ด JDBC ที่น่าเบื่อ ตลอดจนการแยกวิเคราะห์รหัสข้อผิดพลาดเฉพาะของฐานข้อมูลผู้ขาย
  • ORM เป็นเลเยอร์การรวมสำหรับ API การทำแผนที่เชิงวัตถุยอดนิยมบางตัว เช่น JPA, JDO, Hibernate และ iBatis ‘
  • โมดูล OXM เป็นเลเยอร์นามธรรมที่รองรับการใช้งานการแมป Object/XML สำหรับ XStream, JAXB, JiBX, Castor และ XMLBeans
  • โมดูลธุรกรรมสนับสนุนการจัดการธุรกรรมแบบประกาศและเชิงโปรแกรมสำหรับคลาสที่ใช้อินเทอร์เฟซพิเศษ
  • โมดูล Java Messaging Service (JMS) มีคุณลักษณะที่สร้างและใช้ข้อความ
  วิธีรีเซ็ต Ubuntu เป็นการตั้งค่าเริ่มต้น

#3. AOP (Aspect Oriented Programming) และเครื่องมือวัด

โมดูลนี้มาพร้อมกับการใช้งานโปรแกรมเชิงพื้นที่ที่สอดคล้องกับ AOP Alliance ซึ่งทำให้ง่ายต่อการกำหนดสิ่งต่างๆ เช่น ตัวสกัดกั้นเมธอด ในทางกลับกัน โมดูลเครื่องมือวัดมีตัวโหลดคลาสและการสนับสนุนเครื่องมือวัดคลาสเพื่อใช้ในเซิร์ฟเวอร์แอปพลิเคชันบางตัว

#4. เว็บ

โมดูล Web, Web-Servlet, Web-Struts และ Web-Portlet รวมกันเป็นเว็บเลเยอร์

  • เว็บโมดูลรับผิดชอบคุณสมบัติการรวมเว็บพื้นฐาน เช่น ฟังก์ชันการอัปโหลดไฟล์หลายส่วน
  • โมดูล Web-Servlet นำเสนอการใช้งาน MVC ของ Spring สำหรับเว็บแอปพลิเคชัน
  • โมดูล Web-Portlet จำลองการทำงานของโมดูล Web-Servlet โมดูล Web-Portlet นำเสนอการนำ MVC ไปใช้ในสภาวะแวดล้อมพอร์ตเล็ต
  • โมดูล Web-Socket รองรับการสื่อสารสองทางระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ในเว็บแอปพลิเคชัน

#5. ทดสอบ

โมดูลทดสอบเป็นส่วนสุดท้ายของสถาปัตยกรรมของสปริง เป็นโมดูลที่รองรับการทดสอบส่วนประกอบสปริงด้วย TestNG หรือ JUnit

ติดตั้ง Spring Framework

ตรวจสอบว่าติดตั้ง Java แล้ว

ก่อนที่จะเรียนรู้วิธีการทำงานของ Spring Framework เราต้องติดตั้ง Spring บนพีซีของเรา เอกสาร Spring มีแหล่งข้อมูลมากมายเกี่ยวกับวิธีเริ่มต้นใช้งาน โดยขึ้นอยู่กับระบบปฏิบัติการของคุณ

สำหรับกรณีของเรา เราจะใช้ Ubuntu 20.04.5 ซึ่งเป็นระบบปฏิบัติการบน Linux

ก่อนติดตั้ง Spring ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Java โดยใช้คำสั่งนี้

java -version

หากคุณติดตั้ง Java คุณจะมีผลลัพธ์คล้ายกับภาพหน้าจอนี้

หากคุณไม่มีบนพีซีของคุณ มีหลายวิธีในการติดตั้ง Java ตามความต้องการของคุณ

ติดตั้ง Spring framework

มีหลายวิธีในการติดตั้ง Spring framework ตามที่เน้นใน Spring docs

สำหรับกรณีของเรา เราจะใช้ GVM (Groovy Environment Manager) คุณสามารถรับ GVM โดยใช้ GVMtool หรือติดตั้งบนบรรทัดคำสั่ง

เมื่อคุณมี GVM แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้งและตรวจสอบว่ามีการติดตั้ง Spring framework หรือไม่

gvm install springboot
spring --version

คุณมีแนวโน้มที่จะได้ผลลัพธ์ที่มีลักษณะเช่นนี้หากติดตั้ง Spring

คำศัพท์สำคัญที่เกี่ยวข้องกับ Spring framework

การฉีดพึ่งพา

การพึ่งพาการฉีดเป็นคุณสมบัติที่ช่วยให้นักพัฒนาสร้างวัตถุอิสระนอกชั้นเรียน DI ยังอนุญาตให้ผู้ใช้จัดหาวัตถุเหล่านั้นให้กับชั้นเรียนด้วยวิธีต่างๆ

การผกผันของการควบคุม (IoC)

IoC เป็นแนวคิดที่ถ่ายโอนการควบคุมส่วนต่างๆ ของโปรแกรมหรือวัตถุไปยังเฟรมเวิร์กหรือคอนเทนเนอร์ ในการเขียนโปรแกรมแบบดั้งเดิม โค้ดแบบกำหนดเองของเราจะทำการเรียกไปยังไลบรารี ในทางกลับกัน IoC อนุญาตให้เฟรมเวิร์ก (Spring ในกรณีนี้) โทรไปยังโค้ดที่เรากำหนดเองและควบคุมโฟลว์ของโปรแกรม

Aspect-Oriented Programming (AOP)

AOP เป็นเทคนิคสำหรับการสร้างรูทีนทั่วไปและใช้ซ้ำได้ ซึ่งสามารถนำไปใช้ในแอปพลิเคชันทั้งหมดได้ วิธีการดังกล่าวจะแยกงานที่ทำซ้ำได้ (เช่น การตรวจสอบอินพุต การบันทึก และการจัดการข้อผิดพลาด) ออกจากตรรกะของแอปพลิเคชันหลัก

แหล่งข้อมูลการเรียนรู้ Spring Framework

#1. การเขียนโปรแกรมเชิงโต้ตอบด้วย Spring Framework 5

หลักสูตร Spring นี้ประกอบด้วยวิดีโอ บทความ และทรัพยากรที่ดาวน์โหลดได้ หลักสูตรนี้สอนการเขียนโปรแกรมเชิงฟังก์ชันด้วย Java วิธีไมโครเซอร์วิสด้วย Spring WebFlux และวิธีใช้ประโยชน์จากประเภท Reactive ใน Spring Data MongoDB

#2. คลาสมาสเตอร์ของ Spring Framework

Spring Framework Master Class เป็นหลักสูตรแบบชำระเงินซึ่งสอนวิธีจริงที่โครงการ Java ใช้ Spring Framework คุณจะได้เรียนรู้วิธีใช้เครื่องมือต่างๆ เช่น Spring Boot, JUnit & Mockito, Spring JDBC, Spring AOP และ Hibernate

  วิธีเปลี่ยนรหัสผ่าน iPhone Hotspot

#3. Spring Framework ในขั้นตอนง่ายๆ

Spring Framework In Easy Steps เป็นหลักสูตรระดับพรีเมียมที่เหมาะอย่างยิ่งหากคุณต้องการสร้างแอปพลิเคชันเว็บ Java EE แบบ End to End โดยใช้ Spring Framework บางสิ่งที่คุณจะได้เรียนรู้คือการพัฒนาเว็บแอปพลิเคชันโดยใช้ Spring MVC วิธีสร้าง Ajax Call โดยใช้ JQuery และ Spring MVC และวิธีใช้ Spring JDBC เพื่อดำเนินการกับฐานข้อมูล เป็นต้น

#4. สปริงเฟรมเวิร์ค5

หลักสูตร Spring Framework 5 เหมาะอย่างยิ่งหากคุณต้องการเรียนรู้ Learn Spring Framework 5, Spring Data MongoDB, Spring Boot 2, Spring MVC, Spring Data JPA และ Hibernate คุณสามารถฝากวิดีโอตามความต้องการ 57 ชั่วโมง บทความ 13 บทความ และสื่อที่ดาวน์โหลดได้มากมาย

หมายเหตุผู้เขียน

Java ยังคงเป็นหนึ่งในภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดในโลกสมัยใหม่ แม้ว่าจะมีการแนะนำภาษาใหม่ๆ เฟรมเวิร์กอย่าง Spring ก็นำชีวิตใหม่มาสู่ Java และขยายขอบเขตประโยชน์ของมัน ดังนั้นเราจึงมีแนวโน้มที่จะมีความต้องการวิศวกร Java ต่อไปเนื่องจากจำเป็นสำหรับการรักษารหัสดั้งเดิมและสร้างแอปพลิเคชันใหม่

บทสรุป

Spring อยู่ในอันดับที่สูงใน Java EE frameworks และเราหวังว่าคุณจะเข้าใจว่า Spring Framework คืออะไร คุณสมบัติ สถาปัตยกรรม และกระบวนการทำงาน เมื่อรวมกับโปรเจกต์ Spring อื่นๆ Spring Framework จะมอบเครื่องมือในการพัฒนาต่างๆ ให้กับนักพัฒนาที่สามารถใช้ได้ในสภาพแวดล้อมการพัฒนาที่แตกต่างกัน

เรื่องล่าสุด

x