JavaRush /จาวาบล็อก /Random-TH /ประโยชน์ของการใช้สปริง
Alex
ระดับ

ประโยชน์ของการใช้สปริง

เผยแพร่ในกลุ่ม
ไม่ช้าก็เร็วนักพัฒนามือใหม่หลายคนก็เจอSpringซึ่งเป็นเฟรมเวิร์กยอดนิยมสำหรับการพัฒนาแอปพลิเคชันใน Java สิ่งสำคัญที่ Spring ช่วยให้คุณทำคือทำให้การพัฒนาแอปพลิเคชัน J2EE สำหรับนักพัฒนาง่ายขึ้น นี่คือประโยชน์หลักที่นักพัฒนาจะได้รับเมื่อใช้ Spring:
ประโยชน์ของการใช้สปริง - 1
  • Springจัดเตรียมเฟรมเวิร์กสำหรับแอปพลิเคชันในอนาคตของคุณ หากคุณต้องการ "ว่างเปล่า" สำหรับแอปพลิเคชันในอนาคตของคุณ ในขณะเดียวกัน กรอบงานจะกำหนดกฎสำหรับการสร้างแอปพลิเคชัน - มีสถาปัตยกรรมแอปพลิเคชันบางอย่างที่คุณต้องการสร้างฟังก์ชันการทำงานของคุณ ฟังก์ชันนี้จะเป็นตรรกะทางธุรกิจของแอปพลิเคชันของคุณจริงๆ Spring มีโปรเจ็กต์ย่อยมากมายที่ปรับให้เหมาะกับฟังก์ชันเฉพาะ (SpringMVC, Spring Security, SpringData ฯลฯ สามารถดูรายการทั้งหมดได้ที่https://spring.io/projects ) ซึ่งนักพัฒนาสามารถเลือกโปรเจ็กต์ที่เหมาะสมที่สุดสำหรับเขา และ อย่าใช้ส่วนที่เหลือ - นี่เป็นหลักการแบบแยกส่วนในการสร้างแอปพลิเคชัน

  • ในแอปพลิเคชันที่ใช้ Spring ออบเจ็กต์จะถูกเชื่อมต่ออย่างหลวมๆ ผ่านการใช้ dependency insert เป้าหมายประการหนึ่งของ Spring คือการทำลายการพึ่งพาวัตถุบางอย่างกับวัตถุอื่น การเสพติดคืออะไร? นี่คือเมื่อ Object1 ใช้วิธีการของ Object2 อื่น เช่น Object1 ขึ้นอยู่กับ Object2 ซึ่งเป็นวิธีการที่ใช้ เขาพึ่งมาทำไม? แต่เนื่องจากจนกว่าวัตถุ Object2 จะถูกสร้างขึ้น Object1 จะไม่สามารถใช้งานฟังก์ชันของมันได้ จะเลิกเสพติดได้อย่างไร? “ฉีด” การอ้างอิงไปยังวัตถุ Object2 ลงในวัตถุ Object1 ผ่านตัวสร้างหรือตัวตั้งค่า กระบวนการนี้เป็นการฉีดขึ้นต่อกันจริงๆ สิ่งสำคัญคือต้องจำไว้ว่าใน Spring นั้น ออบเจ็กต์ต้องถูกสร้างขึ้นบนพื้นฐานของอินเทอร์เฟซ ดังนั้นการขึ้นต่อกันจะถูกฉีดในรูปแบบของอินเทอร์เฟซ เพื่อการทดแทนการใช้งานในภายหลังที่เป็นไปได้

  • คุณไม่จำเป็นต้องสร้างวัตถุด้วยตนเองโดยใช้ตัวดำเนินการใหม่ ฟังก์ชันนี้ได้รับการมอบหมายให้กับคอนเทนเนอร์ Spring แล้ว นี่คือการผกผันของการควบคุม (IoC) - ถ่ายโอนฟังก์ชันการสร้างอินสแตนซ์การขึ้นต่อกันที่จำเป็น (อ็อบเจ็กต์) ไปยังคอนเทนเนอร์ บทบาทของนักพัฒนาในสิ่งที่คุณถามทั้งหมดนี้คืออะไร? ประกาศส่วนประกอบเพื่อให้ตกอยู่ในบริบทของ Spring พูดง่ายๆ ก็คือบริบทของ Spring คือแผนที่ซึ่งเป็นที่ตั้งของถั่วทั้งหมด เมื่อพวกเขาบอกว่า bean อยู่ในบริบทของ Spring ให้พิจารณาว่า bean อยู่ในแผนที่ และ Spring รู้กุญแจสำคัญในการดึงมันมาจากแผนที่ ทุกสิ่งที่ถูกทำเครื่องหมายว่าเป็น bean ในการกำหนดค่า xml หรือในคลาสที่มีคำอธิบายประกอบ @Component จะถูกสร้างอินสแตนซ์และวางไว้ในแมปของแมพ Map<key,bean> เช่น คอนเทนเนอร์มีแผนที่จะ "เก็บ" ถั่วทั้งหมด (แนวคิดหลักใน Spring คือ bean ซึ่งเป็นเอนทิตีที่จัดการโดยคอนเทนเนอร์ เพื่อให้ bean (คลาสสามัญ) ได้รับการจัดการ จะต้องตกอยู่ใน Spring context.) และหากจำเป็น การใช้งานคอนเทนเนอร์จะทำสิ่งนี้: map.get(key) คีย์คือประเภทฟิลด์;

  • Spring ช่วยให้คุณเป็นอิสระจากความจำเป็นในการสร้างวัตถุ แต่ยังต้องเชื่อมโยงวัตถุเหล่านั้นด้วย ตัวอย่างเช่น คำอธิบายประกอบ @Autowired ช่วยให้คุณสามารถเชื่อมโยงส่วนประกอบต่างๆ ได้โดยอัตโนมัติ @Autowired spring annotation สามารถอธิบายง่ายๆ ได้ดังนี้: เพื่อนรัก คอนเทนเนอร์สปริง โปรดดูในแผนที่ของคุณด้วย beans เพื่อดูว่าคุณมีคลาส instanceof หรือการดำเนินการของสิ่งที่ฉันยืนอยู่ตรงหน้าหรือไม่ ถ้ามีให้ลิงค์ในช่องที่ฉันประกาศไว้ก่อน การลิงก์อัตโนมัติช่วยให้คุณลดจำนวนโค้ดเมื่อพิจารณาการพึ่งพาส่วนประกอบ

  • ใน Spring การตั้งค่า bean จะถูกแยกออกจากโค้ดโปรแกรม การย้ายการกำหนดค่า (การจัดการการพึ่งพา) ไปยังไฟล์แยกต่างหากทำให้ง่ายขึ้นสำหรับการเปลี่ยนแปลงในภายหลังในโครงการ (แทนที่การใช้งาน):


    • ความสามารถในการทดสอบที่ดีขึ้น เมื่อคลาสได้รับการออกแบบตาม DI และอินเทอร์เฟซ จะสามารถเปลี่ยนการพึ่งพา (ด้วยการใช้งานปลอม) ในระหว่างการทดสอบได้อย่างง่ายดาย

    • ความสามารถในการเขียนโปรแกรมในรูปแบบการประกาศโดยใช้คำอธิบายประกอบจะช่วยลดจำนวนโค้ดในแอปพลิเคชัน

    • การสนับสนุนและการบูรณาการที่ดีกับเทคโนโลยีการเข้าถึงข้อมูล ธุรกรรม AOP ช่วยให้การพัฒนาง่ายขึ้น

    • เอกสารที่ดีช่วยได้มากเมื่อทำการดีบักแอปพลิเคชัน
ส่วนใครที่อยากเข้าใจ Spring แนะนำให้อ่าน K. Walls ครับ Spring in Action - ฉบับที่ 3 และแน่นอนว่าเป็นเอกสารอย่างเป็นทางการ
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION