คำนำ
ในฐานะผู้เขียนโค้ดที่มีส่วนร่วมในการพัฒนาชวาความสำคัญของฤดูใบไม้ผลินั้นชัดเจนในตนเอง คุณอาจจะจัดการกับกรอบฤดูใบไม้ผลิทุกวัน ฤดูใบไม้ผลิเป็นเพียงชื่อนำความสะดวกสบายเหมือนฤดูใบไม้ผลิมาสู่การพัฒนาแอพพลิเคชั่น Java ฤดูใบไม้ผลิสามารถกล่าวได้ว่าเป็นรากฐานที่จำเป็นสำหรับนักพัฒนา Java ทุกคนในการเข้าถึงเทคโนโลยีขั้นสูง แน่นอนว่ามันไม่ใช่เรื่องง่ายที่จะเรียนรู้ฤดูใบไม้ผลิได้ดีโดยเฉพาะอย่างยิ่งที่จะเข้าใจหลักการพื้นฐานของฤดูใบไม้ผลิ ต้องใช้เวลาและพลังงานมากในการศึกษาอย่างรอบคอบและการทดลองและข้อผิดพลาดอย่างต่อเนื่องและสรุปในโครงการจริงเพื่อสร้างความคิดและความเข้าใจของคุณเอง บล็อกเกอร์มีความเข้าใจที่ตื้นเขินของฤดูใบไม้ผลิในตอนแรกและเป็นไปได้ที่จะพึ่งพาปัญหาที่ Du Niang สามารถแก้ปัญหาได้โดยทั่วไปเมื่อพบปัญหาในโครงการ อย่างไรก็ตามเป็นเวลานานกว่าหนึ่งปีนับตั้งแต่ฤดูใบไม้ผลิได้รับการติดต่อกับฤดูใบไม้ผลิความเข้าใจในระบบกรอบงานค่อนข้างวุ่นวายและเทคโนโลยีลึกยังคงเหมือนหมอกและไม่ได้สร้างความรู้ความเข้าใจและความเข้าใจของตัวเองซึ่งไม่เอื้ออำนวยต่อการปรับปรุงเทคโนโลยีการเขียนโปรแกรม ในมุมมองนี้ฉันตัดสินใจที่จะสงบลงและเรียนรู้กรอบฤดูใบไม้ผลิอย่างเป็นระบบตั้งแต่ต้นจนจบและบันทึกรายละเอียดการเรียนรู้และแบ่งปันความรู้ด้านเทคนิคผ่านรูปแบบของบล็อก โอเคมาถึงจุด-
รู้เบื้องต้นเกี่ยวกับกรอบสปริงหลัก
DI (การฉีดพึ่งพา) การฉีดพึ่งพาและแนวคิดอื่นที่เรามักจะได้ยินเกี่ยวกับการใช้ฟังก์ชั่นเดียวกับ IOC (การผกผันควบคุม) แต่ฟังก์ชั่นเดียวกันนี้อธิบายจากมุมมองที่แตกต่างกัน บล็อกเกอร์ที่นี่จะไม่ไปวิเคราะห์มากเกินไปมีคำอธิบายมากมายเกี่ยวกับ Baidu สิ่งที่เราจำเป็นต้องรู้คือการฉีดพึ่งพาอาศัยกันคืออะไรและทำไมการฉีดพึ่งพา เพื่อให้เข้าใจถึงสองประเด็นนี้ฉันคิดว่าการเรียนรู้ฤดูใบไม้ผลินั้นดีที่สุดในแง่ของการคิด
เมื่อไม่ได้ใช้ฤดูใบไม้ผลิ - นั่นคือเมื่อไม่มีการฉีดพึ่งพาการพึ่งพามันเป็นเรื่องยากที่จะบรรลุการทำงานร่วมกันการทำงานร่วมกันระหว่างคลาสของแอปพลิเคชัน Java หากคลาส (a) บางอย่างจำเป็นต้องใช้ฟังก์ชั่นของตนหากจำเป็นต้องพึ่งพาการทำงานร่วมกันของคลาสอื่น (B) จำเป็นต้องสร้างวัตถุคลาส B ในคลาส A อย่างแข็งขันเพื่อให้ฟังก์ชั่นโดยใช้วิธีคลาส B (คุณไม่ควรกังวลเกี่ยวกับวิธีการคงที่และสถานการณ์อื่น ๆ ที่นี่) สิ่งนี้เทียบเท่ากับคลาส A ที่รับผิดชอบการจัดการวงจรชีวิตทั้งหมดของวัตถุคลาส B ในกรณีที่ง่ายมากดูเหมือนว่าไม่มีปัญหากับวัตถุใหม่ของคลาสอื่นในชั้นเรียนหนึ่ง แต่ความสัมพันธ์ร่วมกันระหว่างคลาสแอปพลิเคชันที่ซับซ้อนและคลาสมักจะพหุภาคี เราไม่ทราบว่ามีวัตถุทางเลือกจำนวนเท่าใดที่การใช้งานฟังก์ชั่นคลาสจะต้องพึ่งพาการร่วมมือ ดังนั้นการสร้างวัตถุในชั้นเรียนและการจัดการวงจรชีวิตทั้งหมดของวัตถุจะทำให้เกิดการมีเพศสัมพันธ์สูงและความซับซ้อนที่ไม่สามารถจินตนาการได้ ดังนั้นลองจินตนาการว่าถ้าเราสามารถส่งมอบวงจรชีวิตของวัตถุให้กับองค์ประกอบของบุคคลที่สามสำหรับการจัดการและเมื่อชั้นเรียนต้องการวัตถุอื่นองค์ประกอบของบุคคลที่สามจะถูกสร้างขึ้นโดยตรง ด้วยวิธีนี้คลาสสามารถมุ่งเน้นไปที่การใช้งานฟังก์ชั่นของตัวเองโดยไม่ต้องจัดการวงจรชีวิตของวัตถุคลาสอื่น ๆ ฟังก์ชั่นของคลาสดังกล่าวนั้นง่ายกว่ามาก ใช่คุณต้องเข้าใจว่าฤดูใบไม้ผลิเป็นองค์ประกอบของบุคคลที่สามนี้ เราเพียงแค่ต้องบอกฤดูใบไม้ผลิ (คอนเทนเนอร์) วัตถุที่ต้องมีการจัดการและเราไม่จำเป็นต้องใส่ใจเกี่ยวกับวิธีการสร้างกรอบฤดูใบไม้ผลิสร้างวัตถุ ด้วยวิธีนี้เมื่อคลาส A บางอย่างต้องใช้วัตถุคลาส B หากคลาส B ได้รับการประกาศและส่งมอบไปยังการจัดการคอนเทนเนอร์สปริงเมื่อโปรแกรมทำงานไปยังคลาส A และต้องใช้คลาส B คอนเทนเนอร์สปริงจะฉีดวัตถุคลาส B ลงในคลาส A ผ่านการฉีดขึ้นอยู่กับการฉีด ผ่านการฉีดพึ่งพาของส่วนประกอบของบุคคลที่สามวัตถุไม่จำเป็นต้องสร้างและจัดการการพึ่งพาระหว่างคลาสเองอีกต่อไป นอกจากนี้ยังมีหลายวิธีในการสร้างการฉีดพึ่งพาวัตถุเช่นการฉีดอินเทอร์เฟซการฉีดวิธีการก่อสร้างการฉีดวิธีการติดตั้ง ฯลฯ การพูดถึงสิ่งนี้คุณควรมีความเข้าใจที่ค่อนข้างตรงไปตรงมาเกี่ยวกับการฉีดพึ่งพา สำหรับสาเหตุที่จำเป็นต้องมีการฉีดพึ่งพาการพึ่งพาบทความข้างต้นได้อธิบายไว้อย่างชัดเจนแล้ว เพื่อลดการมีเพศสัมพันธ์ระหว่างส่วนประกอบในรหัสเราควรใช้ตัวอย่างง่ายๆเพื่อสัมผัสกับประโยชน์ของการฉีดพึ่งพามากกว่าการจัดการวัตถุด้วยตัวเอง -
คนชั้นเรียนสาธารณะใช้มนุษย์ {รถ QQCAR ส่วนตัว; Public Man () {this.car = ใหม่ qqcar (); } @Override โมฆะสาธารณะ Xiabibi () {} โมฆะสาธารณะ drivecar () {car.drive (); -มีการใช้งานอินเทอร์เฟซรถยนต์สองแบบ: Mercedes-Benz และ QQ Car ในรหัสด้านบนของ Man และ QQCAR คนขับที่มีประสบการณ์จะสร้างวัตถุรถยนต์ QQ ผ่านตัวสร้างเท่านั้นดังนั้นเขาจึงสามารถขับรถ QQ ได้เท่านั้น แล้วคนขับรถที่มีประสบการณ์ควรทำอย่างไรถ้าเขาต้องการขับเมอร์เซเดส-เบนซ์? คุณขอให้เขาสร้างวัตถุเมอร์เซเดส-เบนซ์ใหม่หรือไม่? รหัสคู่ที่สูงเช่นนี้ดูเหมือนจะทำอะไรไม่ถูกดังนั้นเราจะทำการปรับปรุงรหัสข้างต้นโดยการฉีดวัตถุ:
คนชั้นสาธารณะใช้มนุษย์ {รถส่วนตัว คนสาธารณะ (รถยนต์รถยนต์) {this.car = Car; } @Override โมฆะสาธารณะ Xiabibi () {} โมฆะสาธารณะ drivecar () {car.drive (); -รหัสข้างต้นบล็อกวัตถุเฉพาะตามลักษณะ polymorphic ผ่านการฉีดอินเทอร์เฟซคอนสตรัคเตอร์เพื่อให้ไดรเวอร์ที่มีประสบการณ์สามารถขับเคลื่อนสิ่งที่พวกเขาต้องการได้ นี่คือประโยชน์ของการฉีดพึ่งพา
AOP (การเขียนโปรแกรมที่มุ่งเน้นด้าน) การเขียนโปรแกรมที่มุ่งเน้นใบหน้า ในการพัฒนาประจำวันเมื่อเราทำหน้าที่ทางธุรกิจให้เสร็จสมบูรณ์เราจะเขียนโค้ดจำนวนมาก ในที่สุดเมื่อเราเพิ่มประสิทธิภาพรหัสเราพบว่ารหัสที่ทำธุรกิจให้เสร็จสมบูรณ์อาจเป็นเพียงสองประโยคและส่วนที่เหลือไม่เกี่ยวข้องกับส่วนนี้ของธุรกิจ มันถูกสกัดอย่างสมบูรณ์เพียงเพื่อใช้รหัสเทคโนโลยีบางอย่าง ดังนั้นโดยธรรมชาติเราจะแยกมันออกเป็นคลาสเครื่องมือเพื่อให้ทุกสิ่งที่คุณใช้นั้นโอเคกับการเรียกใช้วิธีเครื่องมือ มาดูกันดีกว่าเล็กน้อย นอกเหนือจากการทำฟังก์ชั่นทางธุรกิจที่เกี่ยวข้องแล้วองค์ประกอบการทำงานของแต่ละโมดูลธุรกิจนั้นเกี่ยวข้องกับการดำเนินงานเพิ่มเติมเช่นบันทึกการทำธุรกรรมและการควบคุมความปลอดภัย นี่ไม่ใช่ฟังก์ชั่นหลักของโมดูล แต่เป็นสิ่งที่ขาดไม่ได้ หากฟังก์ชั่นพิเศษเหล่านี้ถูกเพิ่มลงในรหัสแต่ละองค์ประกอบของระบบธุรกิจจะปรากฏซ้ำ ๆ เกินไปและทำให้รหัสธุรกิจดูสับสนและไม่บริสุทธิ์พอ ในเวลานี้คุณถามพระเจ้ารหัสธุรกิจของคุณสามารถมุ่งเน้นไปที่การดำเนินธุรกิจและเพิกเฉยต่อสิ่งที่ไม่เกี่ยวข้องเช่นบันทึกการทำธุรกรรม ฯลฯ ? โอ้พระเจ้าบอกว่ามันโอเคดังนั้นจึงมี AOP หากวัตถุประสงค์ของการฉีดพึ่งพาคือการรักษาส่วนประกอบความร่วมมือในสถานะการมีเพศสัมพันธ์ที่ค่อนข้างหลวม AOP จะแยกฟังก์ชั่นที่แพร่กระจายไปทั่วแอปพลิเคชันเพื่อสร้างส่วนประกอบที่ใช้ซ้ำได้ ในแง่ของคนธรรมดาบันทึกการทำธุรกรรม ฯลฯ ล้วนเป็นส่วนประกอบที่นำกลับมาใช้ใหม่ได้ เราสามารถแยกบันทึกการทำธุรกรรมความปลอดภัยและรหัสการทำงานอื่น ๆ ที่กระจัดกระจายในส่วนต่าง ๆ ของรหัสธุรกิจและกลายเป็นองค์ประกอบเครื่องมือแยกต่างหาก ประกาศว่าเป็นส่วนที่ใช้งานได้ในการกำหนดค่าของฤดูใบไม้ผลิจากนั้นบอกสปริงที่ไหนและเมื่อใดที่คุณต้องการใช้ (ตัด) ส่วนประกอบที่นำกลับมาใช้ใหม่เหล่านี้ได้ นี่คือการตีความอย่างง่าย ๆ ของฉันในส่วนที่มุ่งเน้นใบหน้า บทความนี้เป็นเพียงการแนะนำดังนั้นบล็อกเกอร์จะอธิบายแนวคิดสั้น ๆ และจะไม่สร้างรหัสเฉพาะหรือการใช้งานการกำหนดค่า มันจะถูกนำเสนอในโพสต์บล็อกที่ตามมา ยินดีต้อนรับสู่การดู